使用管理工作室SQL Server 2008 R2
。
尝试执行LEFT JOIN
并且我需要返回第一个表中的所有行,而不管该行是否能够与第二个表绑定。
不确定我是否正确解释了。
这就是我现在所得到的:
select a.id, a.name, b.store, b.stock
from products a left join stock b
on a.id = b.id
where b.store = '001'
order by a.id
我需要查询返回公司销售的所有商品,并在商店001
显示库存。
但现在它的方式只会显示商店001
中提到产品库存的行。
所以,基本上,如果没有提及0
商店,我需要查询返回001
股票。
所有只有商店002
库存的商品也需要列出,并且0
为库存。
答案 0 :(得分:9)
将b条件从WHERE
移至ON
以获得真实LEFT JOIN
。 (使用WHERE
子句中的b条件,它作为常规inner join
执行...)
select a.id, a.name, b.store, b.stock
from products a left join stock b
on a.id = b.id and b.store = '001'
order by a.id