我想从具有特定商品的所有订单中选择订单商品.在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)
如何使用查询构建器执行此查询?
我在使用查询构建器删除 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)