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
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
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)