最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

小贝_mysqlselect连接查询_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:50:53
文档

小贝_mysqlselect连接查询_MySQL

小贝_mysqlselect连接查询_MySQL:select连接查询 简要: 一、union联合查询 二、左右内连接 一、union联合查询 作用: 把2次或多次查询结果合并起来 详细: (表1查询结果) union (表2查询结果) 执行: 先算表1查询结果,再算表2查询结果。再通过union把结果联合起来。 总结: a、左右查
推荐度:
导读小贝_mysqlselect连接查询_MySQL:select连接查询 简要: 一、union联合查询 二、左右内连接 一、union联合查询 作用: 把2次或多次查询结果合并起来 详细: (表1查询结果) union (表2查询结果) 执行: 先算表1查询结果,再算表2查询结果。再通过union把结果联合起来。 总结: a、左右查


select连接查询

简要:
一、union联合查询
二、左右内连接

一、union联合查询

作用: 把2次或多次查询结果合并起来

详细: (表1查询结果) union (表2查询结果)

执行: 先算表1查询结果,再算表2查询结果。再通过union把结果联合起来。

总结:

a、左右查询结果列数一致

b、最终显示结果以第一张表的列名为主

c、左右查询结果的列类型最好也一致,不然就会进行转换。由低到高。如表1结果A列为整形,表2结果A列为浮点型。则表1在A列的结果转换为浮点型

d、可以是不同表

e、如果不同的语句中取出的行,有完全相同(每个列的值都相同),那么相同的行将会合并(去重)

案例:

查询 这样的结果:

a16,b 21,c 14,d 41

步骤1: union来获取两张表的查询结果

步骤2: 把步骤1的查询结果看成临时表

不足之处: 上述案例中表ta和tb中不存在完全相同的列(即查询结果中所有列的值都一样)

修改下tb表

此时,执行步骤2的sql语句

发现id为a的值总和为5而不是为10.

这是因为如果不同的语句中取出的行,有完全相同(每个列的值都相同),那么相同的行将会合并(去重)

处理方案: 用union all

二、连接查询

通常情况下表与表之间是没有什么关系的。但是我们可以通过一个字段,让表与表发生关系。

把表看成集合。

2.1、左连接

语法: select 列1,列2,列N from tableA left join tableB on tableA.列=tableB.列

2.2、右连接

语法: select 列1,列2,列N from tableA right join tableB on tableA.列=tableB.列

2.3、内连接

语法: select 列1,列2,列N from tableA inner join tableB on tableA.列=tableB.列

2.4、左右内连接的区别

create table boy

( name char(3) not null,

flower char(5)

)engine=myisam charset utf8;

create table girl

( name char(3),

flower char(5)

)engine=myisam charset utf8;

insert into boy values('林书豪','玫瑰'),('刘翔','桃花'),('周杰伦','茉莉花'),('犀利哥','荷花'),

('刘德华','狗尾巴花');

insert into girl values('艾薇尔','玫瑰'),('居里夫人','桃花'),('芙蓉姐','茉莉花'),('凤姐','茉莉花'),('林志玲','荷花');

案例一: 根据花,男找女

左连接

以左表为准,去右表找匹配数据,找不到匹配,用NULL补齐。

总结: tableA为N ;tableB为M。则在以tableA为左表的情况下,得到的数据行数至少为N行。

案例二: 根据花,女找男

总结: 左连接和右连接相互转换。

A 在 B的左边 ==》B在A的右边

A left join B ==》B rightjoin A

如何记忆:

1、 左右连接可以相互转化

2、 可以把右连接转换为左连接来使用(兼容其它数据版本)

案例三: 无论男女,查找有伴的人

总结: 内连接inner join 查询左右连接都有的数据。即得到左右连接的交集

思考: 能否查出左右连接的并集呢?

答: 目前不能直接获取,目前的mysql不支持外链接。

但可以用union联合

文档

小贝_mysqlselect连接查询_MySQL

小贝_mysqlselect连接查询_MySQL:select连接查询 简要: 一、union联合查询 二、左右内连接 一、union联合查询 作用: 把2次或多次查询结果合并起来 详细: (表1查询结果) union (表2查询结果) 执行: 先算表1查询结果,再算表2查询结果。再通过union把结果联合起来。 总结: a、左右查
推荐度:
标签: 查询 连接 mysql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top