| aid | name |
| 1 | a1 |
| 2 | a2 |
| 3 | a3 |
| 4 | a4 |
| bid | nick |
| 1 | a1 |
| 3 | b3 |
| 5 | a3 |
| 6 | b4 |
1. union 和 union all
将两个表的查询结果合并起来,这个两个不同得是union会将重复的去掉,而union all 无论是否重复都会将查询到的内容全部显示出来。
示例:SELECT name FROM a UNION SELECT nick FROM b
结果 :a1 a2 a3 a4 b3 b4
SELECT name FROM a UNION ALL SELECT nick FROM b
结果: a1 a2 a3 a4 a1 b3 a3 b4
============================================================
2. 左联 (left join)
以左表为基准,首先取出左表中的全部数据,再加上与右表相匹配的数据。
示例:select * from a left join b on a.aid = b.bid
先取出a中的全部数据,再加上b表中与a表aid相等的数据
查询结果:1 a1 a1
2 a2 null
3 a3 b3
4 a4 null
3. 右联 (right join)
与左联正好相反,它是以右表为基准,再加上与左表相匹配的数据
示例:select
* from a right join b on a.aid = b.bid
先取出b中的全部数据,再加上a表中与b表aid相等的数据
查询结果
: 1 a1 a1
3 b3 a3
5 a3 null
6 b4 null
4. 内联 (inner join)
他没有表做基准,只查询出相匹配的数据
示例: select
* from a inner join b on a.aid = b.bid
查询结果
: 1 a1 a1
3 a3 b3
5.子查询(in)
通过一个查询语句查询出来的结果是另一个查询语句的查询内容。
示例
: select * from a where aid in(select bid from b)
查询结果
: 1 a1
3 a3
当然
还有 not in 正好与 in 相反,查询不在 这些结果集里面的
本文详细介绍了SQL中的五种核心查询技巧:去除重复项的UNION与UNION ALL、左连接(left join)、右连接(right join)、内连接(inner join)以及子查询(in),并提供了具体的示例帮助理解。
1万+

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



