Autor | Zpráva | ||
---|---|---|---|
elefant Profil * |
#1 · Zasláno: 5. 3. 2007, 17:14:51
Dobrý deň,
prosím Vás o pomoc, mám menší problém s vytvorením MySQL dotazu. Mám 2 tabulky, kazdá má stĺpec, kde sa ukladajú čísla oddelené čiarkou (","). Potreboval by som sformulovat SQL dotaz, ktorý by porovnal tieto dva zoznamy a v prípade, ak by sa aspon 1 císlo v 1. zozname zhodovalo s císlom v 2. zozname, aby vrátilo výsledok. Ďakujem za pomoc |
||
nightfish Profil |
#2 · Zasláno: 5. 3. 2007, 17:20:27
elefant
špatný návrh tabulky, zbytečná onanie, doporučuju navrhnout tabulky znovu (a lépe) |
||
Yrrah Profil |
#3 · Zasláno: 5. 3. 2007, 17:23:27
Jojo, je to tak.
Pokud máš uloženo několik čísel jako seznam oddělený čárkou, musíš to při zpracování prostě procházet nějakou funkcí pracující s řetězci. Pro složitější operace ti nezbude nic jinýho, než tohle porovnávání dělat až v aplikaci (např. PHP). To je prostě špatně, tohle by měla dělat DB sama. Nejde fakt ta tabulka (tabulky) navrhnout nějak jinak? |
||
nightfish Profil |
#4 · Zasláno: 5. 3. 2007, 17:27:02
Nejde fakt ta tabulka (tabulky) navrhnout nějak jinak?
samozřejmě že jde... a když nám elefant popíše, čeho chce dosáhnout, tak mu možná i budeme schopni poradit |
||
elefant Profil * |
#5 · Zasláno: 5. 3. 2007, 17:33:27
nightfish:
Tak, co by som potreboval: mam tabulku "kategorie", "knihy" a mam tabulku "predajne". Kazda predajna sa specializuje len na urcite kategorie knih. V tabulke kategorie mam riadky: id | nazov_kategorie 1 | Počítačová literatúra 2 | Cudzojazyčná literatúra 3 | Cestopisy 4 | Literatúra pre deti 5 | Slovníky 6 | Náučná literatúra tabulka predajne: id_predajne | kategorie 1 | 1,3,5 2 | 1,2 3 | 1,2,3,4,5,6 4 | 3 tabulka knihy: id | nazov | kategoria 1 | Programujeme v PHP | 1,2,6 2 | Slovensko-anglický slovník | 5 3 | Rozprávky | 4 Chcem si vypísať všetky knihy pre kníhkupectvá id_predajne 1, 2 a 3, ktoré sa v nich môžu predávať s ohľadom na zameranie (kategorie) kníhkupectva. Pre knihkupectvo id_predajne 1 to budu tituly: Programujeme v PHP, Slovensko-anglicky slovnik id_predajne 2 to budu tituly: Programujeme v PHP id_predajne 3: Programujeme v PHP, Slovensko-anglicky slovnik, Rozprávky id_predajne 4: prázdny výsledok Vedeli by ste to, prosím, sformulovať do SQL dotazu ? Moja srdečná vďaka patrí tomu, komu sa to podarí, ale aj každému, kto sa aspon pokúsi mi pomôcť ;) |
||
elefant Profil * |
#6 · Zasláno: 5. 3. 2007, 17:35:15
No a este doplnim, ze to musí byt v max 2 SQL dotazoch (najlepsie v 1) kvoli zatezeniu servra - dotaz sa bude spustat za sekundu mozno 50-60 krat
|
||
Yrrah Profil |
#7 · Zasláno: 5. 3. 2007, 17:41:20
tabulka predajne:
uprav to tak, aby ve sloupci kategorie bylo jen jedno cislo (pokud prodejna zahrnuje vice kategorii, bude mit v teto tabulce vice zaznamu) tabulka knihy: - to je proste spatne v tabulce knihy maji byt pouze knihy, tj. sloupce id, nazev udelej si navic tabulku napr. knihy_kategorie, kde budou sloupce id_knihy a id_kategorie - pak pro tuhle tabulku plati to samy, co pro prodejny |
||
elefant Profil * |
#8 · Zasláno: 5. 3. 2007, 17:48:08
a potom to bude SQL dotaz:
SELECT knihy.nazov FROM knihy LEFT JOIN knihy_kategorie ON knihy_kategorie.id_knihy = knihy.id LEFT JOIN predajne_kategorie ON predajne_kategorie.id_predajne = predajne.id WHERE knihy_kategorie.kategoria = predajne_kategorie.kategoria ? |
||
Yrrah Profil |
#9 · Zasláno: 5. 3. 2007, 18:08:53
Tak si ten dotaz zkus a uvidíš, ne?
Fakt je mnohem rychlejší, než se na každou kravinu ptát na fórech. Já nevim, nechce se mi tim prohrabovat. A stejně tak nevim, jestli se ty tabulky a sloupečky OPRAVDU tak jmenují... |
||
elefant Profil * |
#10 · Zasláno: 5. 3. 2007, 18:42:08
Okej, aj tak vdaka za rady ;-) Teraz sa ten dotaz uz nejak postavit da
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0