12

我在下面创建了两个表,FK_TypeID在这种情况下可以为空。我想写一个查询返回两个表的连接

如果某行为 NULL ,FK_TypeIDTypeNameNULL。我不知道如何去创建这样的加入声明?

[Actions]
ActionsID
Date
Message
FK_TypeID //links to the table below

[Type]
TypeID
TypeName

我当前的语句看起来像这样,它只是跳过NULL FK_TypeID

SELECT        *
FROM            Actions 
INNER JOIN      TypeName ON Actions.FK_TypeID = [Type].TypeID

帮助将不胜感激!

4

2 回答 2

30

你只需要使用一个LEFT JOIN

SELECT Actions.Date, Actions.Message, Type.TypeName
FROM Actions
    LEFT JOIN Type 
        ON Type.TypeID = Actions.FK_TypeID

如果Actions没有找到匹配到的匹配项Type,则 中的所有列都Type将是NULL

这是 SQL 中不同类型连接的良好图形可视化

于 2012-04-13T22:02:18.473 回答
1

使用外连接

SELECT Actions.Date, Actions.Message, Type.TypeName 
FROM   Actions LEFT OUTER JOIN 
           Type ON Type.TypeID = Actions.FK_TypeID 
于 2012-04-13T23:57:55.067 回答