Doctrine SQL - SELECT WHERE 2 záznamy z related tabulky mají dvě hodnoty (SQL WITH)
Dobrý den,
v Symfony s Doctrine SQL mám tabulka1, která má related JOIN přes join_id na tabulka2:
tabulka1
------------------------------------------
id name
---------------------
1 karel
2 petr
tabulka 2
------------------------------------------
value join_id
---------------------
green 1
purple 1
blue 2
A já chci provést SQL SELECT všechny záznamy z tabulka1, které mají v tabulka 2 hodnotu green a purple (opravdu oba). Můžete prosím poradit jak na to? Díky
Dobrý den,
v Symfony s Doctrine SQL byste takový dotaz mohl provést takto:
v Symfony s Doctrine SQL mám tabulka1, která má related JOIN přes join_id na tabulka2:
tabulka1
------------------------------------------
id name
---------------------
1 karel
2 petr
tabulka 2
------------------------------------------
value join_id
---------------------
green 1
purple 1
blue 2
A já chci provést SQL SELECT všechny záznamy z tabulka1, které mají v tabulka 2 hodnotu green a purple (opravdu oba). Můžete prosím poradit jak na to? Díky
ODPOVĚĎ
Dobrý den,
v Symfony s Doctrine SQL byste takový dotaz mohl provést takto:
Show english version
public function findAllByMulti()
{
return $this->createQueryBuilder('s')
->join('u.table_2', 'color1', 'WITH', 'color1.value = :var1')
->join('u.table_2', 'color2', 'WITH', 'color2.value = :var2')
->setParameters([
'var1' => 'green',
'var2' => 'purple'
])
->getQuery()
->execute();
}