Problém s having v group function
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Miri
- Člen | 117
Ahoj, právě se snažím v nette database dosáhnout správného having, bohužel mi to z neznámého důvodu nepřečte jako having ale při výpisu chybové hlášky je stále v group by.
Tohle se snažím udělat:
SELECT `produktkus`.*, COUNT(DISTINCT `filtr_has_produkt`.`filtr_idfiltr`) AS `pocetvybr`
FROM `produktkus`
LEFT JOIN `produkt` AS `produkt_idprodukt` ON `produktkus`.`produkt_idprodukt` =
`produkt_idprodukt`.`idprodukt`
INNER JOIN ....
INNER JOIN `filtr_has_produkt` ON `produkt_idprodukt`.`idprodukt` =
`filtr_has_produkt`.`produkt_idprodukt`
WHERE (`menu_has_produkt`.`menu_idmenu` = ?) AND (`filtr_has_produkt`.`filtr_idfiltr` IN
(' . implode(',', $pole) . '))
GROUP BY `idproduktkus`
Having `pocetvybr` >= count($pole)
Takhle mi to vyhazuje hlášenka:
SELECT `produktkus`.*, COUNT(DISTINCT `filtr_has_produkt`.`filtr_idfiltr`) AS `pocetvybr`
FROM `produktkus`
LEFT JOIN `produkt` AS `produkt_idprodukt` ON `produktkus`.`produkt_idprodukt` =
`produkt_idprodukt`.`idprodukt`
INNER JOIN ....
INNER JOIN `filtr_has_produkt` ON `produkt_idprodukt`.`idprodukt` =
`filtr_has_produkt`.`produkt_idprodukt`
WHERE (`menu_has_produkt`.`menu_idmenu` = ?) AND (`filtr_has_produkt`.`filtr_idfiltr` IN
(106,107,108))
GROUP BY `idproduktkus`, `pocetvybr` >= 3
S touto chybovou hláškou
Column not found: 1247 Reference ‚pocetvybr‘ not supported (reference to
group function) search►
Takhle to dělám:
$this->models["produkt"]->selectPieceByMenu($this->values["currentMenuID"])
->where('produkt_idprodukt.filtr_has_produkt:filtr_idfiltr IN (' . implode(',', $pole) . ')')
->select('produktkus.*, COUNT(DISTINCT produkt_idprodukt.filtr_has_produkt:filtr_idfiltr) AS pocetvybr')
->group("idproduktkus, pocetvybr >= ".$i."");
Nevíte prosím kde dělám chybu? Zkouším vše možné a stále si nevím
rady.
Předem díky
Míra
- s4muel
- Člen | 92
group()
metoda berie dva string parametre, ty jej omylom
posielas len jeden string s ciarkou
https://api.nette.org/…lection.html#…
takze namiesto:
->group("idproduktkus, pocetvybr >= ".$i."");
pouzi:
->group("idproduktkus", "pocetvybr >= $i");