首页 > 解决方案 > 如果第二个表中也没有条目,则返回行?

问题描述

我正在加入 2 个表(表 A 和表 B),我希望它从表 B 返回匹配的结果。此外,如果没有可用的匹配结果返回空。

例如:

Select a.ID,a.Code,b.result 
from Table A as a
LEFT JOIN table B as b on a.ID=b.codeid
Where a.Timestamp<'2019-07-01' and b.xx=xx

目前我得到:

我得到的样本数据:

ID  Code Result
1   AS01 Pass
2   BXY  Fail
.... 

我更喜欢得到

 ID   Code Result
 1    AS01 Pass
 2    BXY  Fail
 .... 
 1000 DCY 

在上面,如果特定 ID(例如:1000)在表 B 中没有任何条目,我什么也得不到。

但我想为那个 1000 Id 返回空的 Result 列。怎么做?

标签: sqlsql-server

解决方案


您的where条件过滤tableB将您left join变成inner join. 将该条件直接放入join

SELECT a.ID, a.Code, b.result 
FROM TableA a
LEFT JOIN tableB b ON a.ID = b.codeid
                  AND B.xx = xx
WHERE a.Timestamp < '2019-07-01' 

推荐阅读