将查询从MySQL转换为条令(不在中)

将查询从MySQL转换为条令(不在中),mysql,symfony,doctrine-orm,doctrine,Mysql,Symfony,Doctrine Orm,Doctrine,我需要帮助将MySQL翻译成条令查询 有一个我想翻译的问题: SELECT izo_order.id FROM izo_order WHERE izo_order.id NOT IN (SELECT izo_installation.order_id FROM izo_installation WHERE izo_installation.order_id=izo_order.id) AND izo_order.client_id = 4

我需要帮助将MySQL翻译成条令查询

有一个我想翻译的问题:

SELECT izo_order.id 
FROM izo_order 
WHERE izo_order.id 
NOT IN (SELECT izo_installation.order_id 
        FROM izo_installation 
        WHERE izo_installation.order_id=izo_order.id)
        AND izo_order.client_id = 4
我做了类似的事情,但似乎不起作用:

$qb = $this->_em->createQuery('SELECT o
FROM AppBundle:Order o
WHERE o.id
NOT IN (SELECT i.order
        FROM AppBundle:Installation i
        WHERE i.order=o.id)
        AND o.clientBelongsTo = :client_id')->setParameter('client_id', $client_id);

        return $qb->getResult();

您的查询看起来不错,但子查询中的where子句应该会导致错误。试着不要那样做:

$qb = $this->_em->createQuery('SELECT o
FROM AppBundle:Order o
WHERE o.id
NOT IN (SELECT IDENTITY(i.order)
    FROM AppBundle:Installation i)
    AND o.clientBelongsTo = :client_id')->setParameter('client_id', $client_id);
$qb->getResult();

如果仍然存在错误,则应该发布错误。

您的查询看起来不错,但子查询中的where子句应该会导致错误。试着不要那样做:

$qb = $this->_em->createQuery('SELECT o
FROM AppBundle:Order o
WHERE o.id
NOT IN (SELECT IDENTITY(i.order)
    FROM AppBundle:Installation i)
    AND o.clientBelongsTo = :client_id')->setParameter('client_id', $client_id);
$qb->getResult();

如果您仍然有错误,您应该发布错误。

我仍然有错误。[语义错误]第0行,第60列“order FROM”附近:错误:无效的PathExpression。必须是StateFieldPathExpression。是否尝试使用
选择标识(i.order)
?谢谢!就这样!我仍然有错误。[语义错误]第0行,第60列“order FROM”附近:错误:无效的PathExpression。必须是StateFieldPathExpression。是否尝试使用
选择标识(i.order)
?谢谢!就这样!