Autor Zpráva
dr.neo
Profil *
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 *
Mně to nepřijde krkolomné, ale elegantní. Bez toho "zbytečného" joinu to přeci nemůže fungovat.
Kcko
Profil
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 *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0