Selection a podmínka v LEFT JOIN ON
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Svaťa Šimara
- Člen | 98
Zdarec,
rád bych rozvířil neformální diskuzi o left joinech. Aktuálně není
v Selection podpora pro podmínku v ON.
Navazuji na pull request: https://github.com/…te/pull/1436
Je rozdíl jestli zadáte:
SELECT * FROM A
LEFT JOIN B ON (A.id = B.id_a)
WHERE B.available = 1
případně:
SELECT * FROM A
LEFT JOIN B ON (A.id = B.id_a)
WHERE B.available = 1 OR B.available IS NULL
a nebo opravdový LEFT JOIN:
SELECT * FROM A
LEFT JOIN B ON (A.id = B.id_a AND B.available = 1)
Navrhované API je přidání metody ->left(…), která funguje stejně jako ->where(…), ale podmínku přidá do ON, nicméně tím se prý zbytečně zasírá API.
Máte někdo nápad na API, které by pokrývalo zároveň aliasování tabulek a left joiny?
Editoval Fafin (28. 3. 2014 16:56)