NTDB pri relácií dosadí jenom PK miesto REF_KEY
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- majky358
- Člen | 37
Tabuľka 'e_country'
id (int)
e_country_code (varchar(2))
name (varchar(50))
Indexy: PK(id), UNIQUE(e_country_code)
Tabuľka 'p_product'
id (int)
country (varchar(2))
Indexy: PK(id), INDEX(country)
FK: country -> e_country(e_country_code)
Zdravím, mám problém s NTDB, ak chcem vybrať stĺpec z druhej tabuľky
do výsledku.
Volám napríklad:
$this->dbContext->table("p_product")->select("p_product.*, country.e_country_code AS c_title");
Výsledný dotaz NTDB:
SELECT `p_product`.*, `country`.`e_country_code` AS `c_title`
FROM `p_product`
LEFT JOIN `e_country` `country` ON `p_product`.`country` = `country`.`id`
Miesto country
.id
by podľa schémy malo dosadiť
REFERENCED_COLUMN_NAME a výsledok by bol ok.
V podstate podobné správanie pri volaní ref() nad Active Row. Relácia je
1:N. Okrem riešenia manuálneho query, ak by to šlo…
Ďakujem veľmi pekne za radu.
Editoval majky358 (30. 12. 2015 1:41)