2014-03-24 87 views
0

我正在嘗試編寫一個msyql查詢,在那裏我會找到所有關閉的&物品,但尚未向客戶收費。MYSQL創建一個子查詢

基本上,我有一個catalog_item,它是我的產品,一旦目錄項關閉,我們向客戶收費,並在customer_order表中記錄一個記錄(這裏有一個名爲catalog_item_id的列,我們可以加入)。

所以我需要:

1)找出所有以出價(在下面的代碼覆蓋)關閉活動項目,

2)加入CUSTOMER_ORDER,看所有的訂單和拒絕任何catalog_items在查詢的第一部分有訂單。

該查詢的第一部分寫在下面,查詢的第二部分通過我的sql知識,我相信需要一個子查詢。我歡迎任何幫助!

select * 
from catalog_item as ci 
left outer join customer_order as co on co.catalog_item_id = ci.catalog_item_id 
where 
    ci.close_date < now() 
    and ci.active = 1 
    and ci.bid_count > 0 
+2

一些樣本數據會更清楚比10個解釋。 – Mihai

+1

或者一個sqlfiddle。 – PlantTheIdea

回答

0

如果你想「擺脫那有什麼吩咐目錄項」,你只是想檢查left join沒有找到任何東西:

select * 
from catalog_item as ci left outer join 
    customer_order as co 
    on co.catalog_item_id = ci.catalog_item_id 
where ci.close_date < now() and 
     ci.active = 1 and 
     ci.bid_count > 0 and 
     co.catalog_item_id is null;