繁体   English   中英

Symfony2中的DQL \\ SQL查询。 很多桌子

[英]DQL\SQL query in Symfony2. Many tables

我有一个关于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();

当客户下订单时,他可以通过三种方式进行处理:

  1. 不要在某些机构去的表“ orders_institution”中添加记录,并在某些类型的美食id表中添加条目
  2. 不在任何表中添加条目
  3. 在“ orders_kitchen”表中添加一个条目,某些类型的美食ID可以在该机构使用

我需要查找所有未选择任何一家机构的订单,没有一种美食类型,或者至少一家机构可以使用的厨房(可以是数组)。

而且我不想选择ID在表“ variants”中的订单。

您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM