2015-12-01 23 views
0

至少一个NULL字段我有两个表ordersorder_itemsMySQL的连接表,其中第二表具有关键

ORDER_ITEMS表具有COMPLETION_DATE场,直到该项目完成后,其为NULL。我只想用至少一个具有NULL Completion_Date的项目返回订单。

SELECT orders.Order_Number 
    FROM orders 
LEFT JOIN order_items 
    ON (orders.Order_Number = order_items.Order_Number) 
WHERE order_items_Completion_Date IS NULL 

我如何加入那里是至少一个 NULL字段COMPLETION_DATE为ORDER_NUMBER关键?

回答

0

如果我理解正确,你就必须把WHERE子句的ON条款那样:

SELECT orders.Order_Number 
    FROM orders 
LEFT JOIN order_items 
    ON (orders.Order_Number = order_items.Order_Number) 
    AND order_items_Completion_Date IS NULL 
1

您可能会发现exists做这个工作做得更好:

select o.* 
from orders o 
where exists (select 1 
       from order_items oi 
       where oi.Order_Number = o.Order_Number and 
        oi.Completion_Date is null 
      ); 

虽然您也可以使用join执行此操作,如果订单中有多个项目的完成日期为NULL,则该方法可能会导致重复的行。

+0

谢谢,我如何包含Order_Number的所有order_items的计数,而不仅仅是具有NULL Completion_Date的计数? – blarg

+0

@blarg。 。 。这听起来像是一个新问题。 –

相关问题