我有2张表格如下。
商店表
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
请建议解决方案。谢谢。
得到解决方案:
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 :(得分: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')
答案 1 :(得分:0)
您的where clausule排除NULL值。为日期添加OR IS NULL,并在其中添加ID ...