Autor | Zpráva | ||
---|---|---|---|
Mastodon Profil * |
#1 · Zasláno: 3. 1. 2009, 14:22:25
Zdravíčko,
řeším tu takový problém, kdy mám v DB tři tabulky a potřebuji je propojit na základě podmínky. Pro lepší pochopení asi uvedu příklad: Tabulka A: zde je nějaké ID, název, ID_spojivane_tabulky, typ Tabulka B: ID, nazev,...... Tabulka C: ID, nazev,..... a já potřebuji docílit toho, aby při spojování byla střídavě připojená tabulka B nebo C podle hodnoty typ v tabulce A. Ty tabulky B a C nemůžou být sloučený, obsahujou úplně jiný sloupce, jen tyto dva jsou shodný. takže ptřebuju, do toho dotazu nějak dostat tohle: if (A.typ==1) JOIN B ..... a if (A.typ==2) JOIN B .... snad je to srozumitelné. Hledal jsem na netu i tady, ale zatím se mi to nepovedlo sestrojit... Nevíte někdo? Byl bych moc vděčný |
||
Alphard Profil |
#2 · Zasláno: 3. 1. 2009, 15:21:51
nešlo by to takhle?
select if(A.typ = "xxx",B.nazev,C.nazev) from A left join B on A.ID_spojivane_tabulky = B.id left join C on A.ID_spojivane_tabulky = C.id |
||
Mastodon Profil * |
#3 · Zasláno: 3. 1. 2009, 17:21:21
Díky, nakonec jsem to vyřešil úplně jinak... Všechno zůstalo v jednom dotazu a tak funkce, kterou jsem potřeboval zůstala zachována a vše funguje, jak má..
Každopádně díky! |
||
Časová prodleva: 15 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0