Nette database JOIN nad jednou tabulkou

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ondrej256
Člen | 186
+
0
-

Zdravím,

potřebuju zapsat následující SQL dotaz v nette database, nechci používat $database->query(…), protože vrací ResultSet a já potřebuju Selection.

select gc1.parent_id, COUNT(gc1.parent_id), gc.name
from goods_category gc1 LEFT JOIN goods_category gc2 ON gc1.parent_id = gc2.id
GROUP BY gc1.parent_id

Je možné vůbec zapsat v nette database left join nad jednou tabulkou?

Unlink
Člen | 298
+
+1
-

Nejako takto, otázka je, čo chceš vlastne z DB získať…

$this->db->table('goods_category')->select('goods_category.parent_id, goods_category.name, COUNT(parent.id)')->group('goods_category.parent_id');
ondrej256
Člen | 186
+
0
-

Potřebuju to pro ublaboo/Grid pro TreeView

Dotaz jak jsi napsal funguje. Díky

ondrej256
Člen | 186
+
+2
-

Myslel jsem si, že už mám vyhráno, ale nakonec si opět nevím rady

Potřebuju docílit následujícího:

SELECT `goods_category`.`parent_id`, COUNT(`goods_category`.`id`) AS `has_children`, `goods_category_ref`.`name`
FROM `goods_category` LEFT JOIN `goods_category` `goods_category_ref`
ON `goods_category`.`parent_id` = `goods_category_ref`.`id`
WHERE (`goods_category_ref`.`depth` = 1)
GROUP BY `goods_category`.`parent_id`;

Nyní se mně generuje

SELECT `goods_category`.`parent_id`, COUNT(`goods_category`.`id`) AS `has_children`,
`goods_category_ref`.`name`
FROM `goods_category` LEFT JOIN `goods_category` `goods_category_ref` ON `goods_category`.`id` =
`goods_category_ref`.`parent_id`
WHERE (`goods_category_ref`.`depth` = 1)
GROUP BY `goods_category`.`parent_id`

Zápsáno to mám takto:

			$db->table('goods_category')
			->select('goods_category.parent_id, COUNT(goods_category.id) AS has_children, :goods_category.name')
			->where(':goods_category.depth', 1)
			->order('goods_category.id')
			->group('goods_category.parent_id');

Rozdíl je v za klíčovým slovem ON:

toto:

goods_category`.`id` = `goods_category_ref`.`parent_id`

potřebuju zaměnit za:

goods_category`.`parent_id` = `goods_category_ref`.`id`

Nedokáže mně ještě s tímhle někdo poradit prosím? :-)

Editoval ondrej256 (16. 5. 2016 19:08)

johnnie
Člen | 54
+
0
-

@ondrej256 zrovna riesim nieco podobne, pre Ublaboo/Datagrid treeview, podarilo sa ti to vyriesit ?