MySQL外连接用法详解:LEFT JOIN、RIGHT JOIN与FULL OUTER JOIN技巧

创始人
2025-01-10 13:23:51
0 次浏览
0 评论

关于mysql中的leftjoin和leftouterjoin的区别

LEFTJOIN是LEFTOUTERJOIN的缩写;内连接(INNERJOIN):只连接匹配的行;左外连接(LEFTJOIN或LEFTOUTERJOIN):包括左表(无论右表中是否有匹配行)的所有行,以及右表中所有匹配的行;右外连接(RIGHTJOIN或RIGHTOUTERJOIN):包括右表中的所有行(无论左表中是否有与它们匹配的行),以及左表中的所有匹配行;全外连接(FULLOUTERJOIN):包含左右表的所有行,不管对方表是否有匹配的行;交叉联接生成笛卡尔积-它不使用任何匹配或选择条件,而是直接添加来自一个数据源的数据与另一个数据源的每一行进行一对一匹配(开发中避免使用);内联接的示例:选择*fromt_institutioniinnerjoint_tellertoni.inst_no=t.inst_nowherei.inst_no="5801";内部可以省略;相当于早期的连接语法select*fromt_institutioni,t_tellertwherei.inst_no=t.inst_noandi.inst_no="5801";左外连接左外连接示例:select*fromt_institutionileftouterjoint_tellertoni.inst_no=t.inst_no;其中outer可以省略;右外连接rightouter连接示例:select*fromt_institutionirightexternaljoint_tellertoni.inst_no=t.inst_no;其中oout可以省略;完整外连接的示例:select*fromt_institutionifull外连接t_tellertoni.inst_no=t.inst_no;

MySQL中外连接的用法和注意事项mysql中关于外连接

MySQL的OuterJoin用法及注意事项在MySQL中,OuterJoin是一种连接两个或多个表以获取相关信息的方法。
外连接允许您在查询数据时返回匹配的行以及不匹配的行。
使用外部连接时,需要注意一些细节。
下面我们详细了解一下MySQL中外部连接的使用和注意事项。
1、左外连接左外连接是指如果右表中有满足条件的数据,则从左表中取出所有行,与右表进行匹配。
左边。
如果右表中没有匹配的数据,则返回所有行,右表中的列值为NULL。
语法格式:SELECTcolumn_name(s)FROMtable1LEFTJOINtable2ONtable1.column_name=table2.column_name;例如,假设您有两个表“学生”和“分数”,其中包含每个学生的学号和姓名,“分数”包含每个学生的成绩和科目。
您可以使用左外连接查询每个学生的所有成绩,包括没有成绩的学生。
代码为:SELECTstudents.name,scores.scoreFROMstudentsLEFTJOINscoresONstudents.id=scores.student_id;2.右外连接右外连接意味着从右表中删除所有行,并在左表中标准化行。
将表数据与右侧的表进行匹配。
如果左表中没有匹配的数据,则返回所有行,左表中的列值为NULL。
语法格式:SELECTcolumn_name(s)FROMtable1RIGHTJOINtable1.column_name=table2.column_name;例如,假设您有两个表:“学生”和“分数”,其中“学生”包含每个学生的学号和姓名,“分数”包含每个学生的成绩和科目。
您可以使用右外连接来查询每个科目的成绩和名称,包括那些没有成绩的科目。
这是代码:SELECTstudents.name,scores.scoreFROMstudentsRIGHTJOINscoresONstudents.id=scores.student_id;3.FullOuterJoinFullOuterJoin是指从左右表中取出所有行并与规范化数据进行匹配。
左、右两个表中,如果左表或右表中没有符合条件的数据,则另一表返回NULL。
语法格式:SELECTcolumn_name(s)FROMtable1FULLOUTERJOINtable2ONtable1.column_name=table2.column_name;MySQL不直接支持全外连接,但是使用UNION关键字可以达到同样的效果。
UNION关键字可以组合两个或多个SELECT语句的结果集。
例如,假设您有两个表:学生和分数。
Students包含每个学生的学号和姓名,Score包含每个学生的年级和科目。
可以使用UNION关键字查询每个学生的姓名和总成绩,包括没有成绩的学生和没有姓名的科目。
代码为:SELECTstudents.name,SUM(scores.score)FROMstudentsLEFTJOINscoresONstudents.id=scores.student_idGROUPBYstudents.idUNIONSELECTstudents.name,SUM(scores.score)FROMstudentsRIGHTJOINscoresONstudents.id=scores.student_idWHEREstudents.idISNULLGROUPBYscores.subject;注意:1、使用外连接时,必须注意表顺序。
即使左、右、内、外连接的结果相同,表
热门文章
1
Python代码实现:如何判断三角形的三... python三角形三条边长,判断能否构成三角形Python三角形的三个长边如下:...

2
高效掌握:CMD命令轻松启动、关闭及登录... 如何用cmd命令快速启动和关闭mysql数据库服务开发中经常使用MySQL数据库...

3
SQL字段默认值设置全攻略:轻松实现自动... sql如何设置字段默认值设置SQL中某个字段的默认值;需要遵循几个步骤。首先您需...

4
MySQL查询加速秘籍:PolarDB ... mysql中in大量数据导致查询速度慢怎么优化?在MySQL中处理大量数据时,查...

5
SQL2000数据库备份压缩技巧:优化空... 怎么将SQL2000中的较大的备份数据库压缩变小更改数据库属性-选项-恢复模型很...

6
SQL字符串处理技巧:单引号使用与转义标... SQL语句中,字符串类型的值均使用什么符号标明?单引号如果字符串内有单引号,请小...

7
Windows环境下Redis安装指南与... redis安装windowsredis基本简介与安装安装Redis首先需要获取安...

8
深度解析:Redis性能优势与局限性,助... redis有哪些优缺点?Redis的全称是RemoteDictionary.Se...

9
深入解析:MySQL数据库的特性与应用 mysql是什么MySQL是一个关系数据库管理系统。MySQL是一个开源关系数据...

10
SQL必备:详解常用字符串函数及数据类型... sql常用的字符串函数都有哪些常用的字符串函数有:1.字符转换功能1.ASCII...