Výběr v latte z inner join

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

Ahoj, pracuji s nette database a výběr z databáze mám tento:

return $this->connection->table('produkt')->where("produktnazev:hodnota", $value)->where("jazyk_idjazyk", $this->language)->fetch();

Když v latte vybírám řádky, tak se mi daří vybrat řádky pouze z tabulky produkt ($item->idprodukt) ovšem když chci vybrat nějaké řádky z produktnazev ($item->produktnazev->idproduktnazev) nedaří se. Daří se jen v případě že do dotazu přidám ->select(produktnazev:idproduktnazev) což mi moc nevyhovuje, protože né vždy to potřebuju vybírat.

Nevíte prosím někdo co s tím?
Předem díky za odpověd

vvoody
Člen | 910
+
0
-

Poriadne si navrhni databázu, evidentne ku každému produktu chceš mať presne jeden názov, pričom ty ich tam môžeš vložiť N, kedže máš FK v tabuľke produktnazev ktorý ukazuje na produkt.

Miri
Člen | 117
+
0
-

Názvů může být víc (podle jazyku), zapoměl jsem dodat že jazyk_idjazyk je v tabulce produktnazev.

Editoval Miri (8. 11. 2013 11:41)

vvoody
Člen | 910
+
0
-

Tak logicky ti takéto volanie nemôže dávať zmysel.

$item->produktnazev->idproduktnazev;

nieje tam nikde informácia o jazyku

Miri
Člen | 117
+
0
-

je v tom dotazu ..
Vysledny dotaz je cca takto

SELECT...
FROM `produkt`
INNER JOIN `produktnazev` ON `produkt`.`idprodukt` = `produktnazev`.`produkt_idprodukt`
WHERE (`zobrazovat` = 1) AND (`produktnazev`.`hodnota` = ?) AND (`jazyk_idjazyk` = ?)

vvoody
Člen | 910
+
0
-

A nieje tvoj hlavný úmysel dotazovanie do tej druhej tabuľky v tom prvom query zrušiť? Mám pocit že si predstavuješ NDB ako hurvínek válku.

$produktnazev = $produkt->related('produktnazev','produkt_idprodukt')->where('jazyk_idjazyk', $idjayzk)->fetch();
Miri
Člen | 117
+
0
-

Neřešme dotaz, dotaz který jsem psal v úvodu funguje, ptám se však na něco jiného, zda jde nějakým způsobem přistupovat v latte ke sloupcům produktnazev právě v tomto dotazu aniž by se použil select.