INNER JOIN v database exprorer

jedlicka
Člen | 70
+
0
-

Dobrý den,

měl bych dotaz ohledně zápisu INNER JOIN v nette. Mám dvě tabulky: tabulka users, kde jsou uživatelé (např. username, což je email) a pak tabulku company, kde je např. jméno uživatele.

Mám SQL dotaz:
SELECT users.username, company.name FROM company INNER JOIN users ON company.uid=users.id;

, který funguje bez problému.

A nevím, jak tento SQL dotaz zapsat v nette pomocí database explorer, něco jako:

<?php
$users = $database->table('users')->select('company.*')->where('company.uid=users.id')->fetchAll();
?>

Prosím o radu.

Díky moc.

Martin

Polki
Člen | 553
+
0
-

database exprorer
takové joiny neumí.

Nejjednodužší cesta je něco takového

$users = $database->table('users')->where('count(:company) > ?', 0)->fetchAll();

Snad je to správně zapsáno nezkoušel jsem

no a to ti vrátí pole uživatelů, kteří mají záznam v company. Pak když potřebuješ pro určitého uživatele vytáhnout jeho company, tak ji získáš pomocí $user->related(‚company‘);

něco tedy jako:

foreach ($users as $user) {
    $company = $user->related('company');
}

Editoval Polki (9. 11. 2019 2:43)