多表查询

本文详细介绍了SQL中的多表查询,包括合并结果集(UNION与UNION ALL)和连接查询(INNER JOIN, FULL JOIN, LEFT JOIN, RIGHT JOIN)。通过文氏图解释了各种JOIN的区别,同时提到了在MySQL中的一些常用函数。" 85260499,6746372,LeetCode 60. C语言实现第k个排列,"['算法', 'LeetCode', 'C语言', '回溯']
摘要由CSDN通过智能技术生成

1.多表查询

1.分类

多表查询有如下几种:

1.合并结果集

UNION 、 UNION ALL

2.连接查询

内连接 [INNER] JOIN ON

外连接 OUTER JOIN ON

左外连接 LEFT [OUTER] JOIN

右外连接 RIGHT [OUTER] JOIN

全外连接(MySQL不支持)FULL JOIN

自然连接 NATURAL JOIN

子查询

2.合并结果集

作用:合并结果集就是把两个select语句的查询结果合并到一起!

合并结果集有两种方式:

//UNION:去除重复记录,例如:

SELECT * FROM t1 UNION SELECT * FROM t2;

//UNION ALL:不去除重复记录,例如:

SELECT * FROM t1 UNION ALL SELECT * FROM t2。

要求:被合并的两个结果:列数、列类型必须相同。

3.连接查询

在这里插入图片描述

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。

​ 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同。

A表
id name
1 Pirate
2 Monkey
3 Ninja
4 Spaghetti
B表
id name
1 Rutabaga
2 Pirate
3 Darth Vade
4 Ninja
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值