我有一个关于DQL查询的问题。
我有这些表格:"订单"、"订单_厨房"、"医嘱_机构"one_answers"变体"。
从"变体"表中,我得到了已经提供的订单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();
当客户离开订单时,他可以通过三种方式进行:
- 不要在"orders_institution"表中添加记录一些机构会在表中添加某些类型的美食id
- 不在任何表中添加条目
- 在表格"orders_kitchen"中添加一个条目,某些类型的烹饪ID适用于该机构
我需要找到所有没有选择任何一家机构的订单,没有任何一种烹饪类型,或者至少有一个厨房与该机构合作(这可以是一个数组)。
我不想选择ID在"变体"表中的订单。
您可以在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专家,我通常会尝试,直到我得到它!
我认为这不是正确的tho,但至少是一个开始:p