Autor | Zpráva | ||
---|---|---|---|
FlashManiac Profil |
#1 · Zasláno: 17. 1. 2013, 23:05:21
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 |
#2 · Zasláno: 17. 1. 2013, 23:13:17
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 |
#3 · Zasláno: 18. 1. 2013, 08:51:31
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 |
#4 · Zasláno: 18. 1. 2013, 09:52:30
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ší. |
||
Časová prodleva: 11 let
|
0