質問: "2016-02-01" ``` | A | テストテスト| | A | テストテスト| | A | テストテスト| | C | テストテスト| | D | テストテスト| となってしまい、希望としては | A | テストテスト| | A | テストテスト| | A | テストテスト| | B | null | | C | テストテスト| | D | テストテスト| の様に、INで指定したID全ての結果が欲しいです。 (`reserve`が存在しない場合はnullになって欲しいです。) この様な結果になるSQLはありますでしょうか 以上、よろしくお願い致します。 ### バージョン MySQL 5.1.73
回答: Bが表示されないのは、テーブルを結合した後に条件として 「AND `reserve`.`reserve_date` = "2016-02-01"」が追加されているため「2016-02-01」を持つデータ以外が除外されてしまうためです。 日付の条件検索をしてから結合を行うと動きそうです。 ``` SELECT name, tmp_reserve.content FROM customer LEFT JOIN (SELECT * FROM reserve WHERE reserve_date = "2016-02-01") as tmp_reserve ON customer.id = tmp_reserve.customer_id WHERE customer.id IN(1,2,3,4); ```