Nette DB – Left Join s ON klauzulí

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

Čau, existuje možnost jak ve fluent Nette\Database zapsat dotaz typu

SELECT a.*, b.x FROM a LEFT JOIN b ON a.id=b.a_id AND b.y=1

, nebo alternativně

SELECT a.*, (SELECT b.x FROM b WHERE b.a_id=a.id AND b.y=1) AS x FROM a

, skrátka jeft join s ON klauzulí?

Editoval Foowie (11. 12. 2012 19:47)

enumag
Člen | 2118
+
0
-

Pokud vím tak ne. NDB používá inner joiny a nemá API pomocí kterého bys to mohl změnit. Jsem si ale docela jistý, že to půjde i jinak pomocí ref a related.

hrach
Člen | 1838
+
0
-

no, ON clasule menit nejde, nicmene prepokladam, ze by to slo dovypodminkovat, ale tezko rict z takovehoto zapisu.

Foowie
Člen | 269
+
0
-

Hrach: no právě že nešlo. Potřebuji provést left join s tím, že druhá tabulka bude filtrovaná podle nějakého klíče a tu první to nějak nezmění. Řečeno jinak, potřebuji přidat do výsledku sloupec podle nějakého dotazu.

Narazil jsem na to už asi popáté, ale až teďka mě to opravdu naštvalo .)

hrach
Člen | 1838
+
0
-

Yep, chapu. Navrhy na konstruktivni reseni vitany.