从两个不同的表中的两列中获取值

时间:2013-07-25 18:35:52

标签: sql sql-server

我试图找出一个查询,它会在特定列的每一行中列出另一列中的关联数据:

enter image description here

所以我希望name列中的每个值和另一个表旁边的列。下面的值44是主键,因此如果该列中有值,我想从另一个表中获取其所属主键的列的名称。如果它是无效的,我不想要任何东西或无效返回。

如果我这样做:

SELECT [Theme].[Name], [ThemeType].[Type] 
FROM [Theme], [ThemeType] 
WHERE [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType]

它只返回两者都存在的值。我怎样才能回来?

1 个答案:

答案 0 :(得分:4)

为了得到这个,你需要一个LEFT JOIN AKA LEFT OUTER JOIN

SELECT [Theme].[Name], [ThemeType].[Type] 
FROM [Theme] 
Left Outer Join [ThemeType] on [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType]

您可以了解联接的工作方式,以及如何使用以下图像显示不同的结果。

enter image description here

图片来自Visual Representation of SQL Joins