我在下面创建了两个表,在这种情况下FK_TypeID
可以为空。我想写一个查询,返回两个表的 join 。
如果某个行的FK_TypeID
NULL ,则TypeName
也 NULL 。我不知道如何创建这样的连接语句?
[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
非常感谢帮助!
答案 0 :(得分:21)
您只需使用LEFT JOIN
SELECT Actions.Date, Actions.Message, Type.TypeName
FROM Actions
LEFT JOIN Type
ON Type.TypeID = Actions.FK_TypeID
如果找不到与Actions
的匹配项与Type
绑定,则Type
中的所有列都将为NULL
。
Here is a good graphical visualization of the different types of joins in SQL
答案 1 :(得分:0)
使用OUTER JOIN
SELECT Actions.Date, Actions.Message, Type.TypeName
FROM Actions LEFT OUTER JOIN
Type ON Type.TypeID = Actions.FK_TypeID