| Autor | Zpráva | ||
|---|---|---|---|
| dr.neo Profil * |
#1 · Zasláno: 29. 9. 2008, 03:12:44
Zdravim!
Resim takovy zajimavy dotaz. Mam tabulky moduly(id_modulu, modul), platby(id_platby, id_modulu,....), objednavka(id_objednavky, id_paltby,.....). A potreboval bych zjistit id_objednavky a modul Napadlo me akorad: SELECT O.`id_objednavky`, M.`modul` FROM objednavka O JOIN platby P ON P.`id_platby` = O.`id_platby` LEFT JOIN moduly AS M ON M.`id_modulu` = P.`id_modulu` Toto reseni mi ale prijde takove krkolomne. Prijde mi tam ten join plateb "zbytecny". Nevite jestli to nahodou mysql neumoznuje vyresit nejak elegantneji? |
||
| Kajman_ Profil * |
#2 · Zasláno: 29. 9. 2008, 08:59:46
Mně to nepřijde krkolomné, ale elegantní. Bez toho "zbytečného" joinu to přeci nemůže fungovat.
|
||
| Kcko Profil |
#3 · Zasláno: 29. 9. 2008, 10:48:37
Pokud ti toto reseni prijde krkolomne tak bych se do slozitejsich veci v programovani nepoustel. Tohle patri k naprosto standardnim a jednoduchym uloham / dotazum
|
||
| dr.neo Profil * |
#4 · Zasláno: 29. 9. 2008, 11:36:38
Spane jsem se vyjadril. Samozdrejme ze joiny jsou aklad. Mel sjem spise namysli nejakou optimalizaci. Treba jestli nejde napsat neco jako LEFT JOIN moduly AS M ON M.`id_modulu` = P.`id_modulu` AND P.`id_platby` = O.`id_platby`. Ale jak se na to tedka divam s odstupem casu tak je to asi stejne blbost. Ono se to proste pres neco spojit musi. Aby bylo jasne o co mi slo. Tato jednoducha ukazka je z jednoho dotazu kde se ruzne spojuje asi 6 tabulek a prislo mi proste zybtecne dalsi spojeni (JOIN platby P ON P.`id_platby` = O.`id_platby`) kdyz z toho vlastne nic neSELECTuju. Je kvuli propojeni.
|
||
|
Časová prodleva: 18 let
|
|||
0