Jak na Left Join v Nette\Database
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- newbie
- Člen | 31
Tak už vůbec netuším. Jde nějak v NBD nastavit left join?
$this->getTable()->where(array('album:band_id' => NULL));
vyhodí
SELECT `band`.`id`
FROM `band`
INNER JOIN `album` ON `band`.`id` = `album`.`band_id`
WHERE (`album`.`band_id` IS NULL)
bohužel bych to potřeboval s
SELECT `band`.`id`
FROM `band`
LEFT JOIN `album` ON `band`.`id` = `album`.`band_id`
WHERE (`album`.`band_id` IS NULL)
Nette Framework 2.0.8 pro PHP 5.3 nebo 5.4
- newbie
- Člen | 31
Tak teď to moc nebude souviset s databázema, ale nějak to na tohle navazuje. Tenhle dotaz mi měl vybrat data pro komponentu. Pokud ji tam zkusím nacpat data přes
$this->connection->query('SELECT *
FROM `band`
LEFT JOIN `album` ON `band`.`id` = `album`.`band_id`
WHERE (`album`.`band_id` IS NULL)');
}
vyhodí mi to chybu že očekávala Table\Selection. Je nějaká možnost aby komponenta přebrala jak Statement tak Selection? Nebo musím celou databázovou vrstvu přepsat na $this->connection->query('… abych se vyhnul v budoucnosti podobným problémům. Pardon jestli jsem ěnkde něco totálně nepochopil, ale pořád s Nette začínám a QS mám otevřený časteji než svůj projekt.
- David Matějka
- Moderator | 6445
jde to hacknout :) staci tu tabulku pripojit jakoby 2×, zkus
$this->getTable()->where(array('album:band_id' => NULL, 'album:id' => NULL);