Začínám s MySQL a nyní bojuji s datazy pro více tabulek naráz. Vím jak to udělat, aby vzsledek složil s několika tabulek. Potrebuji ale udelat dotaz k vypisu všech zakazniku (tab. zakaznik)v uvedenem dni, kteří si objednali službu (tab. služba) nebo koupili věc (tab. vec). Problem je , že nektery zakaznik je pouze zaevidovaný, některý si něco koupil, a jiný i něco objednal. Potrebuji dostat tabulku se všemi zakazniky za den s info o tom zda a co si koupili či objednali, nebo jen že u nas byli. Klasický dotaz SELECT... AND..AND... vybírá jen ty kteří mají ve všech tabulkách něco uvedené. Prosím poraďte jaký zvolit dotaz.
Dik. Prittman
ziskani vysledku z vice tabulek provedes takto:
SELECT A.datum, B.jmeno, B.id, C.adresa FROM lidi A, mesta B, Info C WHERE A.id = '2' AND B.blabla < '3'
snad je jiz jasno :)
Jasno bylo jiz pred tim, ja chtel poradit jak napsat dotaz, kdyz za where jsou podminky ktere pokazde nejsou pravdivé. Tzn. ze ne vzdy je zaznam pro jednoho cloveka ve vsech tabulkach. nekdy je v jedné jindy ve 2 a jindy ve vsech trech. Potrebuji ale zobrazit vsechny lidi i s info ,ktere jsou v tab 2a 3. Funkce AND a OR nefunguji.
SELECT DISTINCT A.* FROM zakaznik A, sluzba B, vec C WHERE (B.datum>'$datum' AND A.jmeno=B.jmeno) OR (C.datum>'$datum' AND A.jmeno=C.jmeno)
Nebo tak nějak? :-) Když to trochu zkonkretizuješ, či mi dáš schéma tabulek, tak napíšu něco lepšího.
Dik za typ, uz se mi to podarilo vyresit pomoci LEFT JOIN.
Dik prittman