我试图找出一个查询,它会在特定列的每一行中列出另一列中的关联数据:
所以我希望name列中的每个值和另一个表旁边的列。下面的值44是主键,因此如果该列中有值,我想从另一个表中获取其所属主键的列的名称。如果它是无效的,我不想要任何东西或无效返回。
如果我这样做:
SELECT [Theme].[Name], [ThemeType].[Type]
FROM [Theme], [ThemeType]
WHERE [Theme].[ThemeTypeId] = [ThemeType].[PK_ThemeType]
它只返回两者都存在的值。我怎样才能回来?
答案 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]
您可以了解联接的工作方式,以及如何使用以下图像显示不同的结果。