繁体   English   中英

如果第二个表中不存在条目,则加入

[英]join if entry doesn't exists in second table

我有两个表被选中加入,

表格1

PK    Val1    Val2     FK
1     a       b        10
2     c       d        11
3     e       f
4     g       h        12

表2

PK    Val3
10     X
11     Y
12     Z

当我在这两个表上选择内连接和所有Val-Columns时,我得到这个结果:

Result
PK    Val1    Val2     Val3
1     a       b        X
2     c       d        Y
4     g       h        Z

如您所见,缺少第三个条目。 我想要的是这样的:

Result
PK    Val1    Val2     Val3
1     a       b        X
2     c       d        Y
3     e       f
4     g       h        Z

我如何修改joinquery

SELECT ... FROM Table1 INNER JOIN Table2 On Table1.FK = Table2.PK

谢谢你,卡尔

使用LEFT JOIN而不是INNER JOIN

SELECT ... FROM Table1 LEFT JOIN Table2 On Table1.FK = Table2.PK

基本上, INNER JOIN返回另一个表上至少匹配的记录。 LEFT JOIN返回左侧指定的表上的所有记录,无论它是匹配还是没有。

顺便说一句, LEFT OUTER JOINLEFT JOIN相同

SQLFiddle演示

使用左外连接

SELECT ... FROM Table1 LEFT OUTER JOIN Table2 On Table1.FK = Table2.PK
SELECT ... FROM Table1 CROSS JOIN Table2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM