2015-12-01 22 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。 。 。這聽起來像是一個新問題。 –

相關問題