Preco select s cudzim klucom vytvara samostatne queries?

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

Ahojte,
mam problem s tym, ze databazovy selet s cudzim klucom vytvara samostatne queries. Tracy mi vracia 3 samostane selecty do databazy.

SELECT `id`, `title`, `image_id`, `create_user`
FROM `blog`
.../app/presenters/BlogPresenter.php:152

SELECT `id`, `image_name`
FROM `wblog_gallery`
WHERE (`id` IN (22, 25, 26, 30, 33))
.../app/presenters/BlogPresenter.php:154

SELECT `id`, `last_login`, `real_name`, `role`
FROM `user`
WHERE (`id` IN (2))
.../app/presenters/BlogPresenter.php:154
$select = $this->database->table('blog')->fetchAll();
foreach ($select as $s){
	echo $s->title.' '.$s->image->image_name.' '.$s->user->real_name.'<br>';
}

Nemal by som dostat jedno query pomocou JOIN? Nastavuje sa to niekde, lebo mam pocit, ze v predoslej verzii nette to fungovalo.
Nette 2.2.0

David Matějka
Moderator | 6445
+
0
-

Takhle to fungovalo vzdy, je to princip NDBT, viz doc

Nette\Database\Table zjednodušuje a optimalizuje výběr dat z databáze. Hlavní myšlenkou je načítání dat pouze z jedné tabulky a tak, aby se tyto dotazy pokládaly jen jednou.

Editoval matej21 (12. 1. 2015 14:43)