Jak na poddotaz v Selectu

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

Ahoj,

můžete mi někdo poradit, jakým způsobem v Nette\Database zapsat následující dotaz?

SELECT *,
(SELECT COUNT(*) AS pocet FROM trust_materialy
WHERE trust_materialy.trust_predmety_id=trust_predmety.id) AS pocetMaterialu
FROM `trust_predmety`

Jde mi o to, abych ke každému řádku z tabulky trust_predmety mohl získat počet příslušných materiálů v tabulce trust_materialy.

Výsledek bych měl rád v Selection, abych s ním mohl nadále pracovat standardně v Nette.

Předtím jsem to řešil přes JOIN v pohledu, který se ovšem chová velice pomalu – standardně v dotazu již byl svižný :(

Díky za rady

enumag
Člen | 2118
+
0
-

V NDB se tohle dělá jinak:

{foreach $connection->table('trust_predmety') as $predmet}
	{$predmet->related('trust_materialy')->count('*')}
	{* to '*' jako argument count je velmi podstatné, bez něj to načítá řádky a ty pak počítá, takhle agregaci provádí DB *}
{/foreach}
jdvorak
Člen | 2
+
0
-

Ahoj,

díky

K