Filtrace hodnot tabulky pomocí hodnoty z jiné tabulky

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

Ahoj,

řeším tento problém:

Mám 2 tabulky:
První s názvem třeba ‚product‘
Druhá obsahuje id produktu a například název štítku.

Nyní bych potřeboval vyfiltrovat všechny produkty podle názvu štítku tak, že v selection mám první tabulku:

$selection = $this->database->table('product');

Nyní mám název štítku například ‚hygiena‘. Jaký příkaz mám nyní použít, abych získal v selection pouze ty produkty, které v druhé tabulce splňují to, že mají tento štítek?

Za rady předem děkuji.

David Matějka
Moderator | 6445
+
+1
-

viz doc

->where(':tags.name', 'hygiena')
nekark
Člen | 16
+
0
-

Toto už jsem zkoušel, bohužel to vždy vyhodí chybu „No reference found for $product->related(tags).“, ikdyž vím, že přesně pdole mého vyhledávání tam produkt existuje.

Editoval nekark (29. 11. 2015 16:31)

David Matějka
Moderator | 6445
+
+1
-

mas spravne cizi klice v db?

nekark
Člen | 16
+
0
-

U všech tabulek mám InnoDB, jestli se jedná o to?

harmim
Člen | 26
+
0
-

InnoDB, je storage engine. Musíš mít tabulky správně provázané. Pokud nevíš co je to cizí klíč, tak jsou tvoje znalosti ohledně databází dost špatné. Něco si o tom přečti.

nekark
Člen | 16
+
+2
-

O databázích toho tolik nevím, vždy si najdu právě to, co potřebuju, neučím se nijak dopředu. Prostě řeším aktuální problém.

Každopádně bych Vám chtěl oboum poděkovat. Již mi to funguje, právě díky cizímu klíči. Aspoň Vám může udělat radost, že jsme mi pomohli vyřešit můj problém.