Viz hlucheucho. Seznam tabulek, struktura, vysledek vzor.
Priklad
lide: id_lide, jmeno, prijmeni, id_bydliste
bydliste: id_bydliste, mesto
Vyber vsechna Brna z tabulky bydlist a prilep k nim cloveka
SELECT
a.mesto,
b.jmeno,
b.prijmeni
FROM
bydliste a
LEFT JOIN lide b ON b.id_bydliste=a.id_bydliste
WHERE
a.mesto="Brno"
Vyber vsechny lidi, prilep k nim radky z bydliste a porovnej, kteri jsou z Brna
SELECT
b.mesto,
a.jmeno,
a.prijmeni
FROM
lide a
LEFT JOIN bydliste b ON b.id_bydliste=a.id_bydliste
WHERE
b.mesto="Brno"
A kdyz mas 3 tabulky, tak se vyplati udelat pro kazde porovnani vyber zvlast a zgrupovat to. Napr
(
- lide bydl = Brno: id_lide
- lide jmeno = Jan: id_lide
GROUP BY id_lide -- vyrobi seznam id_lide podle podminek,
) LEFT JOIN ostatni tabulky na vysledek.
Podminku muzes mit treba OR (Jan nebo z Brna) nebo AND (Janove z Brna); count>0, count=2
Bylo by zbytecne tam vzdy pripojovat vsechny udaje, kdyz te nejdriv stejne zajimaji idecka.
U klasickeho JOIN bacha, tam musis vedet, proc a jak ho pouzivas. Tudle tady nejaci studenti delali program na vyber publikaci podle autoru a kdyz zadali 6 autoru a asi 1000 publikaci, tak to zahltilo procesor na 10 dni :) Nekterou ved. publikaci pise cely tym, treba 3-4 autori. A tazatele zajimalo, kolik publikaci vydalo konkretnich 6 osob. Kdyz si dal kazdeho autora zvlast, tak dotaz udelal blik a hotovo. Takze jsem dotaz slozil ze 6 dotazu a zgupoval to. Oni to meli udelane JOINY a tam se to umocnovalo a vytvarela jedna giganticka tabulka v pameti
((((((1000) na 1000) na 1000) na 1000) na 1000) na 1000)
No, i takove veselosti te muzou potkat :)