Symfony2中的DQLSQL查询.很多桌子


DQLSQL query in Symfony2. Many tables

我有一个关于DQL查询的问题。

我有这些表格:"订单"、"订单_厨房"、"医嘱_机构"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();

当客户离开订单时,他可以通过三种方式进行:

  1. 不要在"orders_institution"表中添加记录一些机构会在表中添加某些类型的美食id
  2. 不在任何表中添加条目
  3. 在表格"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