WHERE ((b. contentid) is null) and ((d. contentid) is null)を上記SQLに付加するとなぜか2、NULL、Null 3、NULL、null 4、NUL、NULL と表示されます。
質問文章の内容をまとめたもの
joinの入れ子について
A(contenthead)をベースにAがBに存在せずかつCに存在しないデータをを作りたいのですが上手く行きません。以下を実行すると
SELECT a.contentid, b.contentid, d.contentid
From
(contenthead as a LEFT JOIN group as b on a.contentid = b.contentid)
left join
(contenthead as c LEFT JOIN ouser as d on c.contentid = d.contentid)
on a.contentid = c.contentid
表示結果は
1、1、NULL
2、NULL、Null
3、NULL、3
4、NUL、4
と出て来ます。従って両方にないのは2だけということになります。
実際のデータもそうなっています。
そこで、
WHERE ((b. contentid) is null) and ((d. contentid) is null)を上記SQLに付加するとなぜか
2、NULL、Null
3、NULL、null
4、NUL、NULL
と表示されます。
教えて頂きたいことお分かり戴けますでしょうか宜しく御願い致します。
a,b,cにくわえてdがあるので処理がおかしいのでは?
普通にやるなら
SELECT * FROM `a`
left join b on a.id=b.id
left join c on a.id=c.id
where b.id is NULL
and c.id is NULL
的な処理で済むと思いますが?
お礼
上手く行きました。ありがとうございました。