2

結合に問題があります。

というテーブルがありますsubjects

subno   subname
30006   Math
31445   Science
31567   Business

という別のテーブルもありますenrollment

subno sno   
30009 980008
4134  988880

等..

学生 9800007 の科目番号と科目名を一覧表示するにはどうすればよいですか?

4

2 に答える 2

3

登録されていない学生にゼロ行を返したい場合は、 を使用します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] JOINand LEFT [OUTER] JOIN-OUTERキーワードはオプション) では重要ですが、 では重要ではないことに注意してくださいINNER JOIN。そのため、@swetha の回答には問題があります。学生に関する情報を探している場合、結合順序が逆になります。

このSQLFiddleを参照してください

于 2013-04-25T05:24:14.623 に答える
1

これを試して

 select * 
 from subjects s 
   left join enrollment e on s.subno = e.subno  
 where sno=9800007 
于 2013-04-25T05:17:35.857 に答える