Autor | Zpráva | ||
---|---|---|---|
Trencl Profil * |
#1 · Zasláno: 22. 3. 2011, 13:22:31
Chtěl bych se zeptat jak se dá spočítat počet položek v tabulce, která je spojena pomocí JOIN.
Mám tabulky se sloupci: projekt_id (tabulka projekt) ukol_id (tabulka ukol) ukol_projekt (tabulka ukol) Chtěl jsem udělat seznam projektů s počtem úkolů za pomocí mysql_fetch array, ale k ničemu kloudnému jsem se nedostal. Díky za radu nebo třeba jen na odkaz kde se to řeší, moc se mi googlit nepodařilo. Díky. |
||
Taps Profil |
#2 · Zasláno: 22. 3. 2011, 14:08:57
Trencl:
v dotaze použij count |
||
Trencl Profil * |
#3 · Zasláno: 22. 3. 2011, 18:09:35
Uvítal bych příklad
|
||
Trencl Profil * |
#4 · Zasláno: 22. 3. 2011, 18:55:28
Bohatě by mi stačil článek kde se řeší součet sloupců v podřadných (spojovaných) tabulkách. Pořád mi to nevychází a článek nenacházím...
|
||
Alphard Profil |
#5 · Zasláno: 22. 3. 2011, 19:29:09
|
||
Trencl Profil * |
#6 · Zasláno: 22. 3. 2011, 19:54:06
[#5] Alphard Děkuji za odpověď, článek řeší sčítání, ale neřeší to můj konkrétní problém se spojováním, který jsem popsal na začátku.
Tady je příklad, jak myslím, že by to mělo fungovat: $vysledek = mysql_query(" SELECT * FROM projekt LEFT JOIN ukol ON projekt_id=ukol_projekt"); while ($radek = mysql_fetch_array($vysledek, MYSQL_ASSOC) ) Bohužel zobratí řádky úkolů, jenže já chci jen vypsat projekty a k nim pak zobrazit počet řádků v tabulce ukol. |
||
Alphard Profil |
#7 · Zasláno: 22. 3. 2011, 20:00:22 · Upravil/a: Alphard
Trencl:
Možná ještě chybí nějaké informace z okolních dílů, nevím. Count() můžete použít úplně stejně sum() (a další agregační funkce, avg(), ...). Článek se věnuje seskupení, to potřebujete, aby se count použilo na správnou množinu dat. SELECT *, count(*) FROM projekt LEFT JOIN ukol ON projekt_id=ukol_projekt group by projekt.projekt_id Doporučuji spoustět v nějakém správci databáze, php výpis je pro testovaní dotazů šíleně pracný. |
||
Trencl Profil * |
#8 · Zasláno: 22. 3. 2011, 20:33:43
Jo už to mám, díky za tip.
|
||
Časová prodleva: 13 let
|
0