在PostgreSQL中你如何加入两个表格选择不同的信息
加入时遇到问题。在PostgreSQL中你如何加入两个表格选择不同的信息
我有一个表称为subjects
subno subname
30006 Math
31445 Science
31567 Business
我也有另一个表称为enrollment
subno sno
30009 980008
4134 988880
等。
如何列出科目号和主题名称为学生9800007 ?
试试这个
select *
from subjects s
left join enrollment e on s.subno = e.subno
where sno=9800007
其实不用担心,我只是改变了这一点!谢谢:) – user2314197 2013-04-25 05:23:29
尝试使用内部连接或只是加入 – swetha 2013-04-25 05:24:45
我怀疑你的意思是'LEFT OUTER JOIN'命令颠倒。尝试在注释中链接的SQLFiddle。 – 2013-04-25 05:26:26
如果你想返回零行的学生没有注册,使用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
和LEFT [OUTER] JOIN
- OUTER
关键字是可选的),但不适用于INNER JOIN
。出于这个原因,@ swetha的答案有一个问题:如果您正在查找有关学生的信息,则会颠倒连接顺序。
SQLFiddle:http://sqlfiddle.com/#!12/dcd01 – 2013-04-25 05:20:25