2012-04-13 25 views
6

以下の2つのテーブルを作成しましたが、この場合はFK_TypeIDがNULLに設定されています。私はを返すクエリを書いて、2つのテーブルのを結合したいと思います。nullable外部キーを持つ2つのテーブルを結合しますか?

FK_TypeIDは、特定の行のNULLある場合、TypeNameNULLあります。私はそのような結合ステートメントを作成する方法についてはわかりません?

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

[Type] 
TypeID 
TypeName 

私の現在なステートメントは次のようになりますと、それは単にNULLFK_TypeID

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

をスキップヘルプをいただければ幸いです!

答えて

19

あなただけActionsに一致するものがTypeとそれを結ぶために見つからない場合は、Typeのすべての列がNULLなりますLEFT JOIN

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

を使用する必要があります。

Here is a good graphical visualization of the different types of joins in SQL

+0

で外部結合を使用してください??それは魅力のように働いた;)ありがとう! – Bonk

+0

「魔術」は、結合戦略です。 +1してJustin Pihonyに、最初のテーブル参照(LEFTテーブル)がすべての結果を返し、右側のテーブルがNULLABLEとして扱われる場合のLEFT JOINの使い方を示してください。これはまさにポスターが求めていたものです。よくやった! –

0

が、これはどのような魔術

SELECT Actions.Date, Actions.Message, Type.TypeName 
FROM Actions LEFT OUTER JOIN 
      Type ON Type.TypeID = Actions.FK_TypeID 
関連する問題