sub_category_idがNULLの場合、report_idとreport_nameも選択しようとしています。
データ例:
table research_category
category_id | category name
---------------------------
1 | category_one
2 | category_two
3 | category_three
table research_sub_category
sub_category_id | category_id | sub_category name
-------------------------------------------------
1 | 1 | sub_category_one
2 | 3 | sub_category_two
table research_report_detail
category_id | sub_category_id | report_id | report_name
-----------------------------------------------------------------------------
1 | 1 | 1 | Awesome Report
2 | NULL | 2 | Awesome? We'll Never Know, Report
3 | 2 | 3 | Another Boring Report, yo
以下のクエリは必要な構造を返しますが、report_id|を返すことができないようです。sub_category_idがNULLの場合のreport_name。
SELECT c.category_id, c.category_name, s.sub_category_id, s.sub_category_name, r.report_id, r.report_name
FROM research_category AS c
LEFT JOIN research_sub_category AS s
ON c.category_id = s.category_id
LEFT JOIN research_report_detail AS r
ON s.sub_category_id = r.sub_category_id
LEFT JOIN research_report_detail AS r2
ON c.category_id = r2.category_id
AND r2.sub_category_id IS NULL
返されたデータ:
category_id|category_name |sub_category_id|sub_category_name|report_id|report_name
-------------------------------------------------------------------------------------
1 |category_one |1 |sub_category_one |1 |Awesome report
2 |category_two |NULL |NULL |NULL |NULL
3 |category_three|2 |sub_category_two |3 |Boring Report
私は何が間違っているのですか?
編集:以下を変更しました
AND r2.sub_category_id = NULL
に
AND r2.sub_category_id IS NULL
しかし、同じ結果が得られました...
**二重編集:質問をより明確にするために、データに別のレポートを追加しました