Active row a nefungční group by (v laděnce funguje)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Miri
- Člen | 117
Ahoj,
vytvořil jsem si dotaz, který v sql funguje tak jak potřebuju, laděnka mi vrátí 2 řádky, ale nette database bohužel pouze jeden.
Tady je dotaz:
SELECT `product`.`id`, `product_t`.`name`, `product_t`.`value`, `product_piece`.`dateFrom`
FROM `product`
LEFT JOIN `product_t` ON `product`.`id` = `product_t`.`product_id`
LEFT JOIN `product_has_menu` ON `product`.`id` = `product_has_menu`.`product_id`
LEFT JOIN `product_piece` ON `product`.`id` = `product_piece`.`product_id`
WHERE (`product`.`show` = 1) AND (`product_t`.`language_id` = 1) AND (`product_has_menu`.`menu_id` =
9) AND (`product_piece`.`dateFrom` >= '2015-06-01') AND (`product_piece`.`dateTo` <= '2016-06-01')
GROUP BY `product_piece`.`id`
Nejlepší by bylo kdyby se mi tam podařilo dostat na product_piece jen holé JOIN, ale to nevím jak dostat v následujícím dotazu
nette database:
return $this->findByMenu($menu)->where(":product_piece.dateFrom >= ?", $from)
->where(":product_piece.dateTo <= ?", $to)->group(':product_piece.id');
Prosím vás, nesetkal se s tím někdo, nebo je to standartní chování
nette ?
Díky Míra
- David Matějka
- Moderator | 6445
ano, toto je ocekavane chovani – nette to seskupi dle primarniho klice
hlavni tabulky – coz je v tomto pripade product
, pokud chces
vsechny product_piece, zacni dotaz od teto tabulky