如何将其转换为 Doctrine 2 QueryBuilder 格式? [英] How to convert this to Doctrine 2 QueryBuilder format?
本文介绍了如何将其转换为 Doctrine 2 QueryBuilder 格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用 Doctrine 编写嵌套查询;示例 SQL 如下所示:
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
我在转换 SECOND SELECT
语句时遇到问题.
I have problem converting the SECOND SELECT
statement.
提前致谢.
我想用 createQueryBuilder
而不是 createQuery
.
推荐答案
试试这个:
1) 创建子查询
$subquery = $this->_em->createQueryBuilder()
->select('t.id')
->from('yourBundle:Task', 't')
->innerjoin('t.user','u')
->where('u.id = 1')
->getDQL();
2) 创建查询后
$query = $this->_em->createQueryBuilder();
$query->select('l')
->from('yourBundle:Layer', 'l')
->where($query->expr()->notIn('l.id', $subquery))
....;
我测试了它并且它有效:)
I tested it and it works :)
这篇关于如何将其转换为 Doctrine 2 QueryBuilder 格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文