🌐Hello World !
JOIN(联表查询)
联表查询(Join)是一种在数据库中使用多个表进行关联查询的操作。它通过使用 JOIN 关键字将多个表连接在一起,并根据关联条件从这些表中检索数据
INNER JOIN(内连接)
内连接(Inner Join)是一种在联表查询中使用的链接方式,它返回满足关联条件的行
语法
SELECT 列表FROM 左表INNER JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1Ociimq-1689851063423)(./image-20230720102802654.png)]
- 表A:
ID Name---------1 John2 Mary3 David
- 表B:
ID Age--------1 302 254 40
- 内连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.AgeFROM AINNER JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age--------------1 John 302 Mary 25
LEFT JOIN(左连接)
左连接(Left Join)是一种在联表查询中使用的链接方式,返回左表中的所有行,以及右表中满足关联条件的匹配行
语法
SELECT 列表FROM 左表LEFT JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zbJ5fjC-1689851063424)(./image-20230720102956745.png)]
- 表A:
ID Name---------1 John2 Mary3 David
- 表B:
ID Age--------1 302 254 40
- 左连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.AgeFROM ALEFT JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age--------------1 John 302 Mary 253 David NULL
左连接返回了表A中的所有行,以及与表B中的ID匹配的行。由于表B中没有ID为3的行,所以返回的Age列为NULL
RIGHT JOIN(右连接)
右连接(Right Join)是一种在联表查询中使用的链接方式,它返回右表中的所有行,以及左表中满足关联条件的匹配行
语法
SELECT 列列表FROM 左表RIGHT JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ax5cLC4-1689851063424)(./image-20230720102817963.png)]
- 表A:
ID Name---------1 John2 Mary3 David
- 表B:
ID Age--------1 302 254 40
- 右连接,可以根据ID列将表A和表B进行关联,并返回满足关联条件的行:
SELECT A.ID, A.Name, B.AgeFROM ARIGHT JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age--------------1 John 302 Mary 25NULL NULL 40
右连接返回了表B中的所有行,以及与表A中的ID匹配的行。由于表A中没有ID为4的行,所以返回的ID和Name列为NULL
FULL JOIN(全连接)
全连接(Full Join)是一种在联表查询中使用的连接方式,它返回左表和右表中的所有行,并将它们按照关联条件进行匹配
语法
SELECT 列列表FROM 左表FULL JOIN 右表 ON 关联条件;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIDCAe56-1689851063425)(./image-20230720102904341.png)]
- 表A:
ID Name---------1 John2 Mary3 David
- 表B:
ID Age--------1 302 254 40
- 全连接,可以将表A和表B进行关联,并返回左表和右表中的所有行:
SELECT A.ID, A.Name, B.AgeFROM AFULL JOIN B ON A.ID = B.ID;
- 结果集:
ID Name Age--------------1 John 302 Mary 253 David NULLNULL NULL 40
全连接返回了表A和表B中的所有行。由于表A中没有ID为4的行,所以返回的ID、Name和Age列为NULL;同样地,由于表B中没有ID为3的行,所以返回的ID、Name和Age列也为NULL
Cross Join(交叉连接)
交叉连接(Cross Join),也称为笛卡尔积(Cartesian Product),是一种在联表查询中使用的连接方式;返回两个表的所有可能组合,即将左表的每一行与右表的每一行进行组合
语法
SELECT 列列表FROM 左表CROSS JOIN 右表;
- 表 A:
| ID | Name ||----|-------|| 1 | John || 2 | Mary || 3 | David |
- 表 B:
| ID | Department ||----|------------|| 1 | Sales || 2 | Marketing |
- 交叉连接表 A 和表 B,我们得到了所有可能的组合
SELECT A.ID, A.Name, B.DepartmentFROM ACROSS JOIN B;
- 结果集:
| ID | Name | Department ||----|-------|------------|| 1 | John | Sales || 1 | John | Marketing || 2 | Mary | Sales || 2 | Mary | Marketing || 3 | David | Sales || 3 | David | Marketing |
🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——
点赞
👍收藏
⭐️评论
📝
来源地址:https://blog.csdn.net/weixin_62765017/article/details/131837722