Sco*_*ion 9 sql t-sql sql-server sql-server-2005
我有一个表(Table1),它有一个复合主键(Column1 + Column2).我在另一个表中使用它作为外键(表2).
现在我想要SELECT语句来选择Table1和Table2中的所有记录.但它返回0行,因为table2是空的.我想要table1中的所有记录,如果table2中不存在,Table2中的Columns值应该为null.
我知道,我只需加入它.但我没有把它做对.
谢谢
Hal*_*han 20
SELECT * FROM Table1 T1
LEFT JOIN Table2 T2 ON T1.Id = T2.FK
Run Code Online (Sandbox Code Playgroud)
FK是第二张桌子上的外键.左连接将返回table1中的所有行,即使它们在table2中不存在.
你需要一个外部联接
SELECT *
FROM table1
LEFT OUTER JOIN table2
ON table1.column1 = table2.column1
AND table1.column2 = table2.column2
Run Code Online (Sandbox Code Playgroud)
Left 表示保留查询中左(第一)表的所有行.