连接时遇到问题。
我有一张桌子叫subjects
subno subname
30006 Math
31445 Science
31567 Business
我还有一张名为enrollment
subno sno
30009 980008
4134 988880
etc..
如何列出学生 9800007 的科目编号和科目名称?
如果您想为没有注册的学生返回零行,请使用LEFT [OUTER] JOIN
, eg:
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
- the OUTER
关键字是可选的)但不适用于INNER JOIN
。因此,@swetha 的答案有一个问题:如果您正在查找有关学生的信息,则加入顺序会颠倒。
See 这个 SQLFiddle http://sqlfiddle.com/#!12/dcd01/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)