admin 管理员组文章数量: 1086019
2024年3月10日发(作者:mavendeploy详解)
sqljoinon的用法
一、SQL JOIN ON 的用法简介
二、INNER JOIN 和 OUTER JOIN
2.1 INNER JOIN
2.1.1 等值连接
2.1.2 非等值连接
2.2 LEFT OUTER JOIN
2.3 RIGHT OUTER JOIN
2.4 FULL OUTER JOIN
一、SQL JOIN ON 的用法简介
在使用 SQL 查询语句时,我们经常需要从多个表中获取数据。JOIN 是一种用
于将两个或多个表中的行相结合的方法。JOIN 可以根据列之间的关系匹配表中的
行。
JOIN ON 是在查询中使用的一个子句,在此子句内我们可以指定JOIN所匹配
的条件。
在本文中,我们将探讨 SQL 中JOIN ON 的用法,并重点介绍 INNER JOIN 和
OUTER JOIN。
二、INNER JOIN 和 OUTER JOIN
INNER JOIN 和 OUTER JOIN 是最常见的两种基本 join 类型。这两种 join 类型
有以下共同点:它们都是根据指定条件从两个或更多表中合并行,并生成新的结果
集。但是它们之间也有一些区别。
2.1 INNER JOIN
INNER JOIN(内连接)返回两个表中符合指定条件的匹配行。只有在连接条
件成立时,才会返回结果。
其中,你还可以通过ON字句指定与其他相关列进行连接的列。
INNER JOIN 主要有两种类型:等值连接和非等值连接。下面分别来介绍。
2.1.1 等值连接
在等值连接中,我们使用等号(=)作为关联条件。例如,我们可以根据两个
表中相同的员工ID来连接“员工”和“薪水”表,以获取员工及其对应的薪水信息。
示例 SQL 查询语句如下:
SELECT ee_id, _name,
FROM employees AS e
INNER JOIN salaries AS s ON ee_id = ee_id;
上述查询将返回一个结果集,其中包含每个员工的ID、姓名以及对应的薪水。
2.1.2 非等值连接
在非等值连接中,我们使用不等号(<、>等)或其他条件运算符作为关联条件。
非等值连接适用于需要比较关联列大小或范围的情况。
通过非等值连接,我们可以根据雇佣日期和部门来获取员工信息。例如,从
“员工”表和“部门”表中选择具有相同雇佣日期并且所属部门名称以字母顺序排列的
记录。
示例 SQL 查询语句如下:
SELECT ee_id, _name, ment_name
FROM employees AS e
INNER JOIN departments AS d ON _date = _date
WHERE ment_name < ment_name
ORDER BY _date;
上述查询将返回一个结果集,其中包含具有相同雇佣日期并且所属部门名称按
字母顺序排列的员工信息。
2.2 LEFT OUTER JOIN
LEFT OUTER JOIN(左外连接)返回两个表中符合指定条件以及左表中所有
行的匹配行。如果右表中没有与左表中的某行匹配的行,则结果集将包含 NULL
值。
LEFT OUTER JOIN 语法如下:
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2 ON _name = _name;
通过这种连接方式,可以获取所有员工以及与其相关联的薪水信息。即使在
“薪水”表中没有员工对应的薪水记录,该员工仍然会被显示出来,并且薪水字段将
显示为 NULL。
示例 SQL 查询语句如下:
SELECT ee_id, _name,
FROM employees AS e
LEFT OUTER JOIN salaries AS s ON ee_id = ee_id;
上述查询将返回一个结果集,其中包含每个员工的ID、姓名以及对应的薪水,
如果某个员工没有对应的薪水记录,则其薪水字段将显示为 NULL。
2.3 RIGHT OUTER JOIN
RIGHT OUTER JOIN(右外连接)是 LEFT OUTER JOIN 的逆操作,它返回两
个表中符合指定条件以及右表中所有行的匹配行。同样地,如果左表中没有与右表
中某一行匹配的行,则结果集将包含 NULL 值。
RIGHT OUTER JOIN 语法如下:
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2 ON _name = _name;
RIGHT OUTER JOIN 的使用与 LEFT OUTER JOIN 基本相同,只是左右表的位
置交换一下。
2.4 FULL OUTER JOIN
FULL OUTER JOIN(全外连接)将返回两个表中符合指定条件和两个表中所
有行的匹配行。如果一个表中某一行在另一个表中没有匹配项,就会以 NULL 值
补充。
FULL OUTER JOIN 语法如下:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON _name = _name;
通过 FULL OUTER JOIN 可以获取到员工及其对应的薪水信息,无论是否有匹
配的记录。如果某个员工没有对应的薪水记录,则其薪水字段将显示为 NULL;反
之亦然,如果某条薪水记录没有对应的员工信息,则该员工信息字段也将显示为
NULL。
以上介绍了 SQL 中JOIN ON 的用法,并重点介绍了 INNER JOIN 和 OUTER
JOIN 的区别与示例。JOIN 是数据查询中常用且强大的功能,熟练掌握它们的用法
可以提高 SQL 查询效率和准确性。
版权声明:本文标题:sqljoinon的用法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710081301a556812.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论