table1
+----+--------+-------+
| ID | NAME | CLASS |
| 1 | さけ | 1 |
| 4 | くじら | 2 |
| 5 | いるか | 2 |
+----+--------+-------+
table2
+-----+----+------------+
| PID | ID | FILENAME |
| 1 | 1 | sake.jpg |
| 2 | 4 | kujira.jpg |
+-----+----+------------+
理想の結果はこのような形です。
+---+--------+------------+
| 4 | さけ | kujira.jpg |
| 5 | いるか | |
+---+--------+------------+
ですが、以下のようなSQLを書いたところ、
SELECT ID,NAME,FILENAME FROM table1,table2 WHERE table1.ID = table2.ID;
「いるか」のデータは表示しかされません。(たしかにそうなるのもわかります。)
そこで、考えているようなデータが抽出できるSQLの書き方を教えてください!
こんな感じでいかがでしょうか?
SELECT table1.id, name, filename FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id WHERE class=2;