连接查询和union联合
来源:互联网 发布:sql查询例题 编辑:程序博客网 时间:2024/05/17 03:49
1、union联合
把两个及以上的查询结果合并
eg、 select id,name,age from php313 where age<80 union select id,name,age from php313 where age>100;
要求: 两次查询的列数一致(可以来自于多张表)推荐: 查询的每一列相对应的列类型也一样多次sql语句取出的列名可能不一致,以第一次的列名为准如果不同的语句中取出的行完全一致,则会合并成一行,去重复如果不去重复,可以加在union后加 all
问题举例:给定两张表 ta,tb,存储的列类型都是id,num
create table ta( id char(1), num int ); insert into ta values ('a',5), ('b',10), ('c',15), ('d',10);
create table tb( id char(1), num int); insert into tb values ('b',5), ('c',10), ('d',20), ('e',99);
“`想得到的结果:a,5 b,15 c,25 d,30 e,99
2、连接查询
理论上讲不可能存在完全相同的两个行,但是表中可以存在完全相同的两行
因为 表内都有一个rowid,是不同的
- 左连接
select 列1,列2,列3 ,列N from
tableA left join tableB
on tableA 列=tableB 列 [ 此处表连接成一张大表,完全当成普通表看] - 右连接
select 列1,列2,列3 ,列N from
tableA right join tableB
on tableA 列=tableB 列 [ 此处表连接成一张大表,完全当成普通表看] - 内连接
select 列1,列2,列3 ,列N from
tableA inner join tableB
on tableA 列=tableB 列 [ 此处表连接成一张大表,完全当成普通表看]
`
总结:
左连接和右连接的区别:左连接以左表为准,取右表找匹配数据,找不到就用NULL补齐;
内连接:查询左右表都有的数据,不要左右连接中NULL的一部分,是左右连接的交集
注意:能否查出左右连接的并集? 不能,不支持外连接。但是可以用union达到目的
0 0
- 连接查询和union联合
- mysql之union联合查询、子查询、连接查询
- 关于 联合查询 UNION 和Order by
- sql联合查询 JOIN和UNION区别
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询union和union all的使用介绍
- Mysql联合查询UNION和UNION ALL的使用介绍
- Mysql联合查询union和union all的使用介绍
- union 联合查询结果
- 联合查询Union
- mysql UNION联合查询
- sqlserver Union联合查询
- Poj 1631 n*logn 的最长上升子序列(LIS)算法
- 190. Reverse Bits
- shell 关于&
- 基于vtkTransform进行旋转、平移和缩放
- Oracle-存储过程示例
- 连接查询和union联合
- 转行后的第一次心得体会
- Course Schedule[拓扑排序]
- POJ 3304 Segments
- 总结如何创建一个守护进程
- C#控制台 控制台清屏
- Chapter 2 信息的表示和处理
- [kuangbin带你飞]专题十四 数论基础-C - Aladdin and the Flying Carpet
- 局部变量与全局变量&变量的存储方式和生存周期