2013-08-05 76 views
0

我有2個表,如下所示。從表中獲取所有記錄,即使在關聯表中沒有條件的記錄

Store表

store_id store_name 
    1 abc 
    2 bcd  
    3 cde 

採購表

purchase_id store_id date 
001  1   2013-07-10 
002  1   2013-07-20 

004  2   2013-07-20 
005  2   2013-08-01 

我當前的查詢是:

SELECT ss.store_id,ss.store_name,tt.transaction_id FROM stores ss LEFT JOIN Purchase pp left join on (ss.store_id=pp.store_id) 

WHERE ss.store_id IN (1,3) AND ((pp.date >= '2013-07-05') AND (pp.date <= '2013-08-05')) 

顯示輸出,如:

Store_id store_name purchase_id 

1  abc  001 
2  abc  002 

我需要輸出,如:

Store_id store_name purchase_id 

1  abc  001 
2  abc  002 
3  cde  NULL 

請建議solution.Thank你。

得到了解決:

SELECT ss.store_id,ss.store_name,tt.transaction_id FROM stores ss 
LEFT JOIN Purchase pp left join on (ss.store_id=pp.store_id) 
AND ((pp.date >= '2013-07-05') AND (pp.date <= '2013-08-05')) 
WHERE ss.store_id IN (1,3) 

回答

0

您限制查詢到搜索該行hvaing STORE_ID(1,3)

刪除該條款, 試試這個::

SELECT 
ss.store_id, 
ss.store_name, 
tt.transaction_id 
FROM stores ss 
LEFT JOIN Purchase pp left join on (ss.store_id=pp.store_id) 

WHERE (pp.date >= '2013-07-05') AND (pp.date <= '2013-08-05') 
+0

但我需要從商店1和3(WHERE ss.store_id IN(1,3)) – Gerry

+0

得到記錄如果可以的話,這與您所需的輸出相矛盾改變你想要的產品 –

+0

基本上我需要顯示從選定的商店購買。如果選定的商店在選定的日期內沒有任何購買,那麼它應該顯示爲0購買。 – Gerry

0

你的where clausule排除NULL值。添加或爲空日期和該ID在哪裏...

相關問題