SQLの初心者です。以下のデータから、哺乳類だけ(CLASSが2)を抽出したいと思います。でも、table2に画像があるならば、画像データも取り出したいと考えています。



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の書き方を教えてください!

回答の条件
  • 1人2回まで
  • 登録:2007/11/29 09:39:20
  • 終了:2007/11/29 17:35:28

回答(2件)

id:y-kawaz No.1

y-kawaz回答回数1420ベストアンサー獲得回数2252007/11/29 09:47:02

ポイント50pt

こんな感じでいかがでしょうか?

SELECT table1.id, name, filename FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id WHERE class=2;
id:tomohirof

ありがとうございます。試してみます!!

2007/11/29 09:58:24
id:chuken_kenkou No.2

chuken_kenkou回答回数722ベストアンサー獲得回数542007/11/29 12:05:42

ポイント50pt

理想の結果は、次の形ですよね?

+---+--------+------------+

4 くじら kujira.jpg
5 いるか

+---+--------+------------+

select table1.ID,table1.NAME,FILENAME
 from table1
  left join table2
   on table1.ID=table2.ID
 where CLASS=2
 order by table1.ID
id:tomohirof

ありがとうございます!

無事できました!!

2007/11/29 14:21:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません