如何将这个sql写入原则查询语言(DQL)?sql to doctrine查询语言
SELECT *
FROM service
WHERE service.id NOT IN (SELECT id_service FROM reclamation)
谢谢。
如何将这个sql写入原则查询语言(DQL)?sql to doctrine查询语言
SELECT *
FROM service
WHERE service.id NOT IN (SELECT id_service FROM reclamation)
谢谢。
尝试使用不存在:
SELECT *
FROM service
WHERE NOT Exists (SELECT 1 FROM reclamation WHERE id_service = service.id)
尝试这样做,
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT s
FROM YourBundle:Service s
WHERE s.id NOT IN
(SELECT s.idService FROM YourBundle:Reclamation r)'
)->getResult();
如果值得,你可以使用旧学校的方式! native-sql-with-docrtine
[语义错误] line 0,col 122'idService FROM'附近:错误:PathExpression无效。必须是StateFieldPathExpression。 –
我认为你应该检查你的语法 –
看到链接http://doctrine.readthedocs.org/en/latest/en/manual/dql-doctrine-query-language.html#subqueries
$q = Doctrine_Query::create()
->select('s')
->from('Service s')
->where('s.id NOT IN (SELECT id_service FROM reclamation)
->getQuery()
->getResult();
你可以找到[点击这里查询示例](http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/dql- doctrine-query-language.html#dql-select-examples) –