7

我有两个选择加入的表,

表格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

谢谢你,卡尔

4

3 回答 3

13

使用LEFT JOIN而不是INNER JOIN

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

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

顺便说一句,LEFT OUTER JOINLEFT JOIN

SQLFiddle 演示

于 2012-10-19T07:06:12.667 回答
2

使用左外连接

SELECT ... FROM Table1 LEFT OUTER JOIN Table2 On Table1.FK = Table2.PK
于 2012-10-19T07:07:37.360 回答
-1
SELECT ... FROM Table1 CROSS JOIN Table2
于 2012-10-19T07:29:01.253 回答