SQL外部联合:right outer join、left outer join、full outer join

SQL将外部联合分为了右外部联合(right outer join)、左外部联合(left outer join)、完全外部联合(full outer join)3个类型。

左外部联合:LEFT OUTER JOIN

                                                  

基本语法:SELECT column_list

                   FROM table1 LEFT OUTER JOIN table2

                   ON condition

思想:OUTER JOIN语句表1中的所有记录都被返回在结果中,即使表2没有匹配的。

举例:现有演员信息表(Actors)和电影信息表(Class),下文中分别简称表1和表2,具体数据如下:

Actors

SId

SActor SDateOfBirth FilmId
1 贝拉 1999-08-07 1
2 爱德华 1998-04-20 3
3 雅各布 1998-11-28 5
Films
FilmId FilmName YearReleased
1 暮色 2005
2 新月 2006
3 月食 2007
4 破晓 2008
5 午夜阳光 2009
SELECT Actors.SActor, Film.FileName,
FROM Actors LEFT JOIN Film
ON Actors.FilmId = Film.FilmId

返回结果为:

表1中的只有3个记录全部都包含在结果中。

左外部联合:RIGHT OUTER JOIN

                                                  

基本语法:SELECT column_list

                   FROM table1 RIGHT OUTER JOIN table2

                   ON condition

思想:与外部联合相反。都返回表2中的所有记录,即使表1没有相匹配的记录

举例:演员信息表(Actors)和电影信息表(Class)

SELECT SActor, FilmName, YearReleased
FROM Actors RIGHT OUTER JOIN Films
ON Actors.FilmId = Films.FilmId

返回结果如下:

完全外部联合:FULL OUTER JOIN

                                                  

基本语法:SELECT column_list

                   FROM table1 FULL OUTER JOIN table2

                   ON condition

思想:左外部联合和右外部联合的组合。返回表1和表2的所有行

举例:现有演员信息表(Actors)和电影信息表(Class)

SELECT SActor, FilmName, YearReleased
FROM Actors FULL OUTER JOIN Films
ON Actors.FilmId = Films.FilmId;

返回结果如下:

发布了36 篇原创文章 · 获赞 10 · 访问量 8178

猜你喜欢

转载自blog.csdn.net/weixin_43319713/article/details/104357689