I would like to write nested query with Doctrine; Sample SQL is like below:
SELECT * FROM layer WHERE layer.id NOT IN
(SELECT task_id FROM users_tasks WHERE user_id = 1)
AND parent_id IS NOT NULL AND leaf IS TRUE
I have problem converting the SECOND SELECT
statement.
Thanks in advance.
I would like to make it with createQueryBuilder
not createQuery
.
try this :
1) create your subquery
$subquery = $this->_em->createQueryBuilder()
->select('t.id')
->from('yourBundle:Task', 't')
->innerjoin('t.user','u')
->where('u.id = 1')
->getDQL();
2) after create your query
$query = $this->_em->createQueryBuilder();
$query->select('l')
->from('yourBundle:Layer', 'l')
->where($query->expr()->notIn('l.id', $subquery))
....;
I tested it and it works :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With