我对DQL查询有疑问。
我有这些表:'orders','orders_kitchen','orders_institution'和'variants'。
从'变体'表中,我获得了已经提供的订单ID。
$orders = $em->createQuery("SELECT o
FROM AppBundle:Orders o
JOIN AppBundle:OrdersInstitution oi
WHERE oi.idInstittuion = :institution AND o.idorder = oi.idOrder AND o.finalDeal IS NULL
ORDER BY o.idorder DESC")
->setParameter("institution",$institution)->getResult();
当客户离开订单时,他可以通过三种方式继续:
我需要找到所有未选择任何一个机构的订单,没有任何类型的菜肴,或者至少有一个厨房与机构合作(这可以是一个阵列)。
我不想选择ID在表'变种'中的订单。
答案 0 :(得分:0)
你可以尝试使用类似SQL的东西(DQL不能很好地连接很多):
$sql = 'SELECT * FROM Orders o JOIN
(SELECT o1.id FROM Orders o1 WHERE o1.cuisine IS NULL OR o1.institution IS NULL) o1 JOIN
(SELECT * FROM Orders o2 INNER JOIN Cuisine c ON c.insitution_id = '.$institution_id.') o2 JOIN (your query);';
这样的事情应该这样做,而不是SQL的专家我通常最终会尝试直到我得到它!
我不认为它是正确的,但至少它是一个开始:p