如何获取满足内连接条件的数据及指定的一条不匹配记录?
解决方案
可以通过UNION ALL将内连接的结果与指定的单条不匹配记录合并,精准实现需求。
示例SQL代码
-- 筛选满足内连接条件的记录 SELECT t1.Table1_ID AS ID, t1.Table1_Name AS Name FROM Table1 t1 JOIN Table2 t2 ON t1.Table1_ID = t2.Table2_ID UNION ALL -- 单独获取指定主键的记录(不受连接条件限制) SELECT Table1_ID AS ID, Table1_Name AS Name FROM Table1 WHERE Table1_ID = 3;
代码说明
- 第一部分通过内连接匹配Table1和Table2的ID,得到符合连接条件的记录(对应示例中的
ID=1, Name=Test); - 第二部分直接查询Table1中主键为3的记录,无需满足连接条件(对应示例中的
ID=3, Name=Test_2,注:示例预期结果中的Test3应为笔误); - 使用
UNION ALL而非UNION,因为两个结果集无重复数据,UNION ALL执行效率更高。
执行结果
ID Name 1 Test 3 Test_2
内容的提问来源于stack exchange,提问作者Dreamer
相关产品推荐
相关产品推荐

