我有一个表(Table1),它有一个复合主键(Column1 + Column2)。我在另一个表中使用它作为外键(表2)。
现在我想要一个SELECT语句来选择Table1和Table2中的所有记录。 但它返回0行,因为table2是空的。我想要table1中的所有记录,如果table2中不存在,Table2中的Columns值应该为null。
我知道,我只需要加入它。但我说得不对。
由于
答案 0 :(得分:18)
SELECT * FROM Table1 T1
LEFT JOIN Table2 T2 ON T1.Id = T2.FK
FK是第二张桌子上的外键。 左连接将返回table1中的所有行,即使它们在table2中不存在。
答案 1 :(得分:5)
您需要外部联接
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.column1 = table2.column1
AND table1.column2 = table2.column2
Left
表示保留查询中左(第一)表的所有行。
答案 2 :(得分:1)
您需要LEFT JOIN
SELECT Table1.*, Table2.*
FROM Table1
LEFT JOIN Table2 ON Table1.Column1 = Table2.Column2
尝试一下。
答案 3 :(得分:0)
使用LEFT JOIN
加入您的表格。请参阅SQL SERVER JOINS 以了解这一概念。