SQL JOIN & MySQL 8.0 JOIN
-
1.环境信息:
MySQL:8.0.16
MySQL Workbench:8.0 -
2.数据库信息:
学生表:t_student
成绩表:t_score
关系图:两表通过t_student的id和t_score的student_id进行关联

t_student表数据:

t_score表数据:

1.标准SQL JOIN
各种Join图示:

1.1 JOIN类型
- 1.(INNER) JOIN: 返回两个表中具有匹配值的记录(两表交集)
- 2.CROSS JOIN: 返回两表笛卡尔积(第一个表中的每一行与第二个表中的每一行组合在一起的行)(两表交集)
- 3.LEFT (OUTER) JOIN: 返回左表中的所有记录,以及右表中的匹配记录(符合某条件的并集)
- 4.RIGHT (OUTER) JOIN: 返回右表中的所有记录,以及左表中匹配的记录(符合某条件的并集)
- 5.FULL (OUTER) JOIN: 当左表或右表中匹配时返回所有记录(两表并集)
左表右表有点晕,可以理解为第一个表(左表),第二个表(右表),OUTER在左连接和右连接中经常省略:
select * from t_student(第一个表) a left (省略outer) join t_score(第二个表) b on a.id = b.student_id;
1.2 SQL JOIN 写法
-- inner连接 一取两表交集
select * from t_student a inner join t_score b on a.id = b.student_id;
-- cross连接 一取两表笛卡尔积
select * from t_student a cross join t_score b ;
-- 左连接 一第一张表为准进行关联,第二张表显示为NULL
select * from t_student a left join t_score b on a.id = b.student_id;
-- 左连接 一第二张表为准进行关联,第一张表显示为NULL
select * from t_student a right join t_score b on a

这篇博客介绍了SQL JOIN的基本概念和类型,包括INNER JOIN, CROSS JOIN, LEFT JOIN, RIGHT JOIN 和 FULL OUTER JOIN。特别讨论了MySQL 8.0中的JOIN,特别是STRAIGHT_JOIN的用法,强调了它指定查询中表格读取顺序的特性,并分析了不同JOIN类型对查询性能的影响。"
114726020,10545041,Appium环境配置与Java版本要求详解,"['移动开发', 'Appium', '测试工具', 'Android开发', 'Java开发']
最低0.47元/天 解锁文章
9179

被折叠的 条评论
为什么被折叠?



