Autor Zpráva
FlashManiac
Profil
Zdravím, chtěl bych požádat o radu. Mám návrh DB v takové podobě:
clenové -id, jmeno, prijmeni
uzemi - id, vymera, IDcislo, listVlastnika
vlastnickeListy - id,vlastnik

tučně zobrazené položky jsou provázány přes FOREIGN KEY

Stručný popis: je seznam členů organizace, každy člen má nejaké územi, toto území je rozděleno na unikátní díly(IDcislo) a kazdy ten to unikatni dil je na listu vlastníka. jeden clen může mít více listů vlastníka.

No a mě jde teď o to, že bych potřeboval nějka naformulovat SQL dotaz, kterým vypíšu do jednoho výpisu členy a jejich celkovou výmeru jejich území, které jsou uvedeny na všech listech vlastníka, které daný člen má.
proste dostat toto:
Petr Novák, 125548

za všechny rady díky. Mořím se s tím už douho a nemůžu najít ten správný SQl dotaz, který by to vyřešil.. ano mohl bych to vyřešit přes PHP ale to je zbytečně zdlouhavý a neefektivní proces.. toto určitě jde i přímo v MySQL
Jan Tvrdík
Profil
FlashManiac:
SELECT `jmeno`, `prijmeni`, SUM(`u`.`vymera`)
FROM `clenove` AS `c`
LEFT JOIN `vlastnickeListy` AS `l`
    ON (`c`.`id` = `l`.`vlastnik`)
LEFT JOIN `uzemi` AS `u`
    ON (`l`.`id` = `u`.`listVlastnika`)
GROUP BY `c`.`id`
FlashManiac
Profil
Jan Tvrdík:
Díky moc, funguje to.. jak se tak dívám v jednoduchosti je krása.. já myslel ze tam bude treba delat nejake slozitosti s vnorenymi poddotazy a ono né:)
Jan Tvrdík
Profil
FlashManiac:
já myslel ze tam bude treba delat nejake slozitosti s vnorenymi poddotazy
Což o to, to by taky šlo :)
SELECT `jmeno`, `prijmeni`, (
    SELECT SUM(`u`.`vymera`)
    FROM `vlastnickeListy` AS `l`
    LEFT JOIN `uzemi` AS `u`
        ON (`l`.`id` = `u`.`listVlastnika`)
    WHERE `l`.`vlastnik` = `c`.`id`
) AS `vymera`
FROM `clenove` AS `c`

Předchozí varianta je ale pochopitelně lepší.

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: