Database left join robí dva selekty

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

Zdravím!
Neni som tu príliš často?
Tak som zisťoval ako nette database vytvára spojenia tabuliek, aby sa miesto dvoch query robilo len jedno.
Tak som napísal výraz:

$this->database->table('posts')
->select('posts.*, users.*')
->order('created_at DESC')
->limit(10);

a čakal som teda, že z toho vypadne left join. To sa aj stalo.
Lenže okrem toho nette urobilo ešte jeden dotaz:

SELECT `id`, `username`
FROM `users`
WHERE (`id` IN (21, 18, 9, 20, 8))

Ale ja som čakal a myslím že oprávnene, že sa tým spojením vlastne zbavím toho druhého query.
Ako to už u mňa býva, zase nechápem čo sa deje. Ako to mám teda chápať?

Editoval Čamo (6. 6. 2014 22:25)

Caine
Člen | 216
+
0
-

Mno jeste, kdybys ukazal zbyvajici kod… Mimo to, kdyz vybiras ze dvou tabulek vsechno, tak si zadelavas na problemy, protoze se ti muzou prepisovat ID – posts.id se ti prepise users.id..

Čamo
Člen | 798
+
0
-

Problém bol v šablone. Tam som mal $post->users->username.
A samozrejme ani ten select all nieje zdravý.

Editoval Čamo (7. 6. 2014 10:17)