Doctrine SQL - SELECT WHERE 2 záznamy z related tabulky mají dvě hodnoty (SQL WITH)

Autor Špalek
Publikováno 01.03.2021
Kategorie programovani
Stav Vyřešeno
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


Odpovědi na dotaz

The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

Symfony Doctrine SQL - SELECT WHERE 2 rows from related table have two values (SQL WITH)

Hi,

in Symfony with SQL Doctrine I have table1 which has a related JOIN via join_id on table2:

tabulka1
------------------------------------------
id name
---------------------
1 karel
2 petr

tabulka 2
------------------------------------------
value join_id
---------------------
green 1
purple 1
blue 2

And I want to SQL select all records from table1 that have a value of green and purple in table 2 (really both). Can you please advise how to do it? Thanks

RE: Doctrine SQL - SELECT WHERE 2 záznamy z related…

Autor Strosmajer
Publikováno 31.03.2021
Kategorie programovani
Stav Zkontrolováno
Dobrý den,

v Symfony s Doctrine SQL byste takový dotaz mohl provést takto:


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();
}


The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

Symfony Doctrine SQL - SELECT WHERE 2 rows from related table have two values (SQL WITH)

Hi,

in Symfony with Doctrine SQL, you could execute such a query as follows:


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();
}
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace