2017-03-18 9 views
3

Monkeysの表とTreesの表があり、多対多の関係が3番目のMonkeysTrees FK表によって結合されています。ここで満足しない場合は、SQL結合戻り行

は私がのために、すべてのサルや木を返すこのクエリを持って与えられたツリーId

SELECT * 
FROM Monkeys m 
JOIN MonkeysTrees mt ON mt.MonkeyId = m.Id 
join Trees t ON t.Id=mt.TreeId 
WHERE t.Id = 1; 

私は木のテーブルにないIdに最終WHERE句でt.Idを変更した場合、IまだすべてのMonkeysを含むテーブルを返すのが好きですが、結合されたフィールドにはNULLがあります。どうすればいい?

+0

以下の句に結合フィールドで 'null'なのでは何を意味する位置を外側に使用することができますか? – SqlZim

+0

WHEREが満たされない場合、行は戻されません。私はまだすべての猿を返すようにしたいと思いますが、ヌルの木で –

答えて

5

あなたは、参加利回りMonkeys left join (MonkeysTrees inner join Trees where treeid = 1)

SELECT * 
FROM Monkeys m 
LEFT JOIN MonkeysTrees mt 
      INNER JOIN Trees t ON t.Id=mt.TreeId AND t.Id = 1 
ON mt.MonkeyId = m.Id 
+0

、ありがとう –

関連する問題