使用管理工作室为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
作为库存。
将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