sql - 如果第二个表中也没有条目,则返回行?
问题描述
我正在加入 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 列。怎么做?
解决方案
您的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'
推荐阅读
- mysql - 是否可以在 mysql 中插入单词和变量的组合?
- python - 从批处理文件中调用 python 行
- javascript - 我必须在 - npm run build #ReactJs 之后更改静态 /js/css 路径
- java - 是否可以在 Spring/REST 中定义具有相同映射但不同参数的多桩方法?
- javascript - 向下滚动时如何返回false?
- php - Laravel:如何根据每个用户的 id 为每个用户提供不同的登录页面
- java - 如何在 OracleXAException 中找到万恶之源
- maven - 如何安装 Eclipse 同上
- objective-c - 如何创建 Inter App MIDI In 端口
- r - 在 Shiny 的同一窗口中逐个显示问题