Autor Zpráva
Miri
Profil *
Ahoj, prosím vás o radu, už se s tím peru celý den a nemohu na to přijít. Mám tento kod
SELECT ... ,COUNT(*) as pocetvybr ,... 
FROM `produkt` 
INNER JOIN `filtr_has_produkt` ON filtr_has_produkt.produkt_idprodukt = produkt.idprodukt AND filtr_has_produkt.filtr_idfiltr IN ( 36,91,92,37 ) 
LEFT JOIN produktnazev AS pn ON pn.produkt_idprodukt = produkt.idprodukt and pn.jazyk_idjazyk = 1 
JOIN `produktkus` ON produktkus.produkt_idprodukt = produkt.idprodukt and produktkus.datumOd IS NOT NULL 
WHERE produkt.zobrazovat = 1 and datumOd >= '2013-03-23' and datumDo <= '2014-03-23' 
GROUP BY `idproduktkus` 
HAVING pocetvybr >= 4 
ORDER BY datumOd ASC
LIMIT 0,10 

Tento kod vybere kusy produktu kde produkt ve filtru je právě v (36,91,92,37). - toto funguje. Ale rozhodnu li se přidat část, která mi nahradí překlad který neexistuje axistujícím překladem, přestane to fungovat a zobrazují se i produkty, které nesplňují hodnoty filtru: Zde přikládám špatný dotaz:
SELECT ... ,COUNT(*) as pocetvybr ,... ,coalesce(pn.nazev, pncz.nazev) AS nazev
FROM `produkt` 
INNER JOIN `filtr_has_produkt` ON filtr_has_produkt.produkt_idprodukt = produkt.idprodukt AND filtr_has_produkt.filtr_idfiltr IN ( 36,91,92,37 ) 
LEFT JOIN produktnazev AS pn ON pn.produkt_idprodukt = produkt.idprodukt and pn.jazyk_idjazyk = 1 
LEFT JOIN produktnazev AS pncz ON pncz.produkt_idprodukt = produkt.idprodukt 
JOIN `produktkus` ON produktkus.produkt_idprodukt = produkt.idprodukt and produktkus.datumOd IS NOT NULL 
WHERE produkt.zobrazovat = 1 and datumOd >= '2013-03-23' and datumDo <= '2014-03-23' 
GROUP BY `idproduktkus` 
HAVING pocetvybr >= 4 
ORDER BY datumOd ASC
LIMIT 0,10 

Předem mockrát díky za každou pomoc.
Míra
Kajman
Profil
COUNT(distinct filtr_has_produkt.filtr_idfiltr) as pocetvybr
Miri
Profil *
Super funguje, díky moc.

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: