LEFT JOIN 查询未返回第一个 table 中的所有行
LEFT JOIN query not returning all rows in first table
使用 Management Studio SQL Server 2008 R2
。
尝试执行 LEFT JOIN
,我需要 return 第一个 table 的所有行,无论该行是否能够与第二个 table 并列。
不确定我解释的对不对。
这是我现在得到的:
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
我需要查询 return 公司销售的所有产品,并显示其在商店的库存 001
。
但现在的方式只会显示提及商店中产品库存的行 001
。
所以,基本上,如果未提及 001
商店,我需要查询 return 0
库存。
所有只有商店 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
使用 Management Studio SQL Server 2008 R2
。
尝试执行 LEFT JOIN
,我需要 return 第一个 table 的所有行,无论该行是否能够与第二个 table 并列。
不确定我解释的对不对。
这是我现在得到的:
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
我需要查询 return 公司销售的所有产品,并显示其在商店的库存 001
。
但现在的方式只会显示提及商店中产品库存的行 001
。
所以,基本上,如果未提及 001
商店,我需要查询 return 0
库存。
所有只有商店 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