相关疑难解决方法(0)

在Doctrine 2中执行WHERE .. IN子查询

我想从具有特定商品的所有订单中选择订单商品.在SQL中我会这样做:

SELECT DISTINCT i.id, i.name, order.name 
FROM items i 
JOIN orders o ON i.order_id=o.id 
WHERE o.id IN (
   SELECT o2.id FROM orders o2
   JOIN items i2 ON i2.order_id=o2.id AND i2.id=5
)
AND i.id != 5
ORDER BY o.orderdate DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

如何使用查询构建器执行此查询?

sql database doctrine-orm

56
推荐指数
2
解决办法
7万
查看次数

Doctrine Query Builder 从表中删除所有条目

我在使用查询构建器删除 id 找到的所有记录时遇到了一些麻烦,我尝试过像下面的代码一样,但我总是收到这个错误:

 [Semantical Error] line 0, col 53 near 'b.id = :surv': Error: 'b' is not defined. 
Run Code Online (Sandbox Code Playgroud)

方法:

public function deleteUsers($surveyId) {
    $qb = $this->getEntityManager()->createQueryBuilder();

    return $qb
        ->delete()
        ->from(BaseUser::class, 'a')
        ->leftJoin('a.survey', 'b')
        ->where('b.id = :survey')
        ->setParameter('survey', $surveyId)
        ->getQuery()
        ->execute()
        ;
}
Run Code Online (Sandbox Code Playgroud)

php symfony doctrine-orm

6
推荐指数
1
解决办法
9619
查看次数

标签 统计

doctrine-orm ×2

database ×1

php ×1

sql ×1

symfony ×1