Autor | Zpráva | ||
---|---|---|---|
Misha Profil * |
#1 · Zasláno: 2. 7. 2013, 12:46:43
Ahoj, potřebuji z tabulky dostat počet produktů, ale vypisuje mi to špatnou hodnotu a už si s tím nevím rady.
Mám tabulku "produkty": +----+------------+ | id | nazev | +----+------------+ | 1 | Auto | | 2 | Konvice | | 3 | Koloběžka | | 4 | Rum | +----+------------+ +----+---------+-----------+ | id | produkt | barva | +----+---------+-----------+ | 1 | 1 | zelená | | 2 | 3 | černá | | 3 | 1 | černá | | 4 | 1 | modrá | +----+---------+-----------+ Dále mám tenhle příkaz: SELECT COUNT(*) FROM `produkty`,`produkty_barvy` WHERE (`produkty`.`id`=`produkty_barvy`.`produkt` && (`produkty_barvy`.`barva`='zelená' || `produkty_barvy`.`barva`='černá')); Doplnění GROUP BY `produkty`.`id` funguje pro výpis produktů, ale ne pro získání počtu pomocí COUNT.
V tomhle případě (viz tabulky) mi to vypíše číslo 3 (počítá počet řádků s barvou jenž vyhovují), jenže já potřebuji jen produkty, které vyhovují, takže požadované číslo je 2. Předem díky za všechny rady. |
||
juriad Profil |
prostě přidej další patro:
SELECT Count(*) FROM (SELECT `produkty`.`id` FROM `produkty` JOIN `produkty_barvy` ON `produkty`.`id` = `produkty_barvy`.`produkt` WHERE `produkty_barvy`.`barva` IN ( 'zelená', 'černá' ) GROUP BY `produkty`.`id`) pid |
||
Kajman Profil |
#3 · Zasláno: 2. 7. 2013, 15:48:15
Je možné použít i distinct v agregační funkci
SELECT COUNT(distinct `produkty_barvy`.`produkt`) ... |
||
Časová prodleva: 11 let
|
0