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

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

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


左外部联合:LEFT OUTER JOIN

   

                 20200217142954847.png                        


基本语法: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


返回结果为:


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


左外部联合:RIGHT OUTER JOIN

                 

      20200217194246818.png                      


基本语法: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


返回结果如下:


20200217200244315.png


完全外部联合:FULL OUTER JOIN

           

             20200217200609169.png                    


基本语法: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;


返回结果如下:


20200217201204833.png

相关文章
|
17天前
|
SQL
SQL JOIN
【11月更文挑战第06天】
34 4
|
23天前
|
SQL 关系型数据库 MySQL
图解 SQL 里的各种 JOIN
用文氏图表示 SQL 里的各种 JOIN,一下子就理解了。
32 2
|
1月前
|
SQL 分布式计算 Java
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作
31 3
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
111 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
60 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
371 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
470 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
305 3

热门文章

最新文章