2016-11-08 143 views
0

我有以下表MySQL的聯盟,並加入

purchase_order   item 
------------------  ------------ 
id (PK)    id (PK) 
deleted    deleted 
name     name 
         purchase_order_id (FK) 

如何退還被鏈接到非缺失,非空PURCHASE_ORDER所有項目,以及沒有鏈接項目所有purchase_orders列表對他們來說,不管是否刪除。

如例如表

PURCHASE_ORDER

id name   deleted 
    --------------------------- 
    1  Big Sale  0 
    2  Other Sale 1 
    3  Empty Sale 0 

項目

id name   deleted purchase_order_id 
    ---------------------------------------------- 
    1  Fruit  1  1 
    2  Bread  0  1 
    3  Water  0  2 

正確的查詢給了我這樣的:

po_id name   item_id name 
------------------------------------ 
1  Big Sale  2  Bread 
3  Other Sale NULL  NULL 

編輯:這是我已經有了但親blem是,規定i.deleted = 0,則停止從返回

SELECT po.id, po.name, i.id, i.name 
FROM purchase_order po 
LEFT JOIN item i ON i.purchase_order_id=po.id 
WHERE po.deleted = 0 AND i.deleted = 0 
+2

那麼你嘗試過什麼 – RiggsFolly

+0

添加查詢 – Alasdair

+0

將'AND ...'移到'WHERE ...'之前 – Strawberry

回答

1

@strawberry不上的項目加入任何行給我的回答

SELECT po.id, po.name, i.id, i.name 
FROM purchase_order po 
LEFT JOIN item i ON i.purchase_order_id=po.id AND i.deleted = 0 
WHERE po.deleted = 0 
+0

對不起。 :) – Alasdair