Jak pomocí Nette/Database přidat data, která se vztahují k „related“ datům

jandik.n
Člen | 41
+
0
-

Ahoj,

z databáze vypisuji jazyky překladatelské agentury, pod kterými pomocí „related“ vypisuji překladatele, kteří tyto jazyky umí (vazba M:N) + další údaje o překladatelích.
Nyní potřebuji přidat dotaz, který bude přidávat údaj z tabulky „project“, ale přímo ke každému překladateli, ale když k dotazu připojím „->select(…)“, tak se údaje budou připojovat k jazykům a ne k překladatelům, kteří jsou „related“. Je k tomu nějaké řešení?

Aktuální kód, který nedělá, co potřebuji, ale uvádím pro nástin:

<?php
public function getLanguagesForNewProject2($target_languages_id) {
        $selection = $this->db->table('language')->select('language.*')->where('language.id', $target_languages_id)->where('language.id != ?', 0)->order('name');
        $selection->select('SUM(IF(:translator_language.translator:translator_project.project.status = 1, :translator_language.translator:translator_project.standard_pages, 0)) AS current_translators_workload')->group(':translator_language.translator_id');
        return $selection;
    }
?>

Dále v tom přidaném selectu přistupuji v databázové struktuře přes related tabulku do další related tabulky „project“, kde potřebuji získat určitý údaj. Zde také nevím, jestli je správně a jestli to může fungovat, tabulka „project“ je od tabulky „language“, ze které vystupuji, už trochu vzdálená. Doufám, že ale nějaké řešení je.

Děkuji moc za rady, snad je to pochopitelné.