結合に問題があります。
というテーブルがありますsubjects
subno subname
30006 Math
31445 Science
31567 Business
という別のテーブルもありますenrollment
subno sno
30009 980008
4134 988880
等..
学生 9800007 の科目番号と科目名を一覧表示するにはどうすればよいですか?
結合に問題があります。
というテーブルがありますsubjects
subno subname
30006 Math
31445 Science
31567 Business
という別のテーブルもありますenrollment
subno sno
30009 980008
4134 988880
等..
学生 9800007 の科目番号と科目名を一覧表示するにはどうすればよいですか?
登録されていない学生にゼロ行を返したい場合は、 を使用しますLEFT [OUTER] JOIN
。次に例を示します。
SELECT e.sno, s.subno, s.subname
FROM enrollment e LEFT OUTER JOIN subjects s ON s.subno = e.subno
WHERE e.sno=988880;
登録していない学生の行を返さない場合は、次を使用しますINNER JOIN
。
SELECT e.sno, s.subno, s.subname
FROM enrollment e INNER JOIN subjects s ON s.subno = e.subno
WHERE e.sno=988880;
結合順序は外部結合 ( RIGHT [OUTER] JOIN
and LEFT [OUTER] JOIN
-OUTER
キーワードはオプション) では重要ですが、 では重要ではないことに注意してくださいINNER JOIN
。そのため、@swetha の回答には問題があります。学生に関する情報を探している場合、結合順序が逆になります。
このSQLFiddleを参照してください
これを試して
select *
from subjects s
left join enrollment e on s.subno = e.subno
where sno=9800007