Výběr podle dvou cizých klíčů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Miri
- Člen | 117
Ahoj, vůbec si nevím rady s jedním selectem, prosím vás tedy o radu.
Mám tyto tabulky
menu (idmenu)
menu_has_zbozi (idmenu, idzbozi)
zbozi (idzbozi)
zbozikus (idzbozikus, idzbozi)
Snažím se vymyslet nette database dotaz pro tento případ, kdy znám jen idmenu:
Select * from zbozikus
Join zbozi on zbozi.idzbozi = zbozikus.idzbozi
Left Join menu_has_zbozi on menu_has_zbozi.idzbozi = zbozi.idzbozi and idmenu = $id
Mockrát díky za kteroukoliv radu
Míra
- David Matějka
- Moderator | 6445
opravdu to idmenu=$id chces davat do leftjoinu? protoze to ti vzdycky vybere
vsechny polozky – jen ty sloupecky z menu_has_zbozi budou obcas
NULL
jestli to ale chces dat do where, tak dotaz bude asi takhle:
$selection = $connection->table('zbozikus');
$selection->where('zbozikus.zbozi.menu_has_zbozi:idmenu', $id); //pro nette 2.0
$selection->where('zbozikus.zbozi:menu_has_zbozi.idmenu', $id); //pro nette 2.1
//pokud chces vybrat data i z dalsich tabulek:
$selection->select('zbozikus.*, zbozikus.zbozi.*, zbozikus.zbozi.menu_has_zbozi:*') //pro 2.0
$selection->select('zbozikus.*, zbozikus.zbozi.*, zbozikus.zbozi:menu_has_zbozi.*') //pro 2.1