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联合

The quieter you become,the more you are able to hear!

转载于:https://www.cnblogs.com/yutingliuyl/p/7223578.html

小贝_mysql select连接查询相关推荐

  1. 小白 MySQL数据库链接查询语句_MySQL数据库——连接查询

    今天将用 "手" 来教大家关于MySQL连接查询的知识! ============================================================= ...

  2. mysql join 排序_MySQL查询优化:连接查询排序limit(join、order by、limit语句)

    本文链接:https://blog.csdn.net/xiao__gui/article/details/8616224 不知道有没有人碰到过这样恶心的问题:两张表连接查询并limit,SQL效率很高 ...

  3. mysql 连接查询索引_Mysql (四)连接查询和索引

    一.什么是连接查询:就是将二个或二个以上的表,"连接起来"当做一个数据源,并从中去取得所须要的数据.连接查询包括交叉连接查询.内连接查询.外连接查询 (一)交叉连接:交叉连接不带W ...

  4. mysql数据连接查询_mysql数据库 连接查询

    左连接: select 列1,列2,列N from tableA left  join tableB on tableA.列 = tableB   [此次表连接成一张大表,完全当成普通表看] wher ...

  5. mysql连接中文_MYSQL远程连接查询中文乱码

    当在服务器远程连接mysql服务器的时候,登录后编码方式latin1:接着我在mysql命令窗口修改为utf-8后,再次远程登录,编码方式依然为latin1: #mysql -h 192.168.1. ...

  6. mysql select符合查询_MySQL SELECT 联合查询

    这里主要分享一下联合查询的用法. MySQL使用UNION和UNION ALL实现数据的联合查询. 假设有以下两个表: mysql>select * from staff; +----+---- ...

  7. mysql 子查询索引_mysql select中子查询中使用强制索引的优化案例

    1,朋友找我帮忙看下比较慢的sql语句 SELECT pg.product_goods_id, pg.product_id, pg.pdt_code, pg.pdt_name, pg.brand_na ...

  8. 小贝_mysql 存储过程

    存储过程 简要:1.什么是存储过程 2.使用存储过程 一.存储过程 概念类似于函数,就是把一段代码封装起来.当要行这段代码的时候.能够通过调用该存储过程来实现.在封装的语句体里面,能够用if/else ...

  9. mysql连接查询(内联)_MySQL之连接查询

    JavaScript面向对象与原型 工厂模式:无法识别对象 function createObject(name, age) { //集中实例化的函数 var obj = new Object(); ...

最新文章

  1. 在Kubernetes集群上部署高可用Harbor镜像仓库
  2. 126. Leetcode 剑指 Offer 46. 把数字翻译成字符串 (动态规划- 字符串系列)
  3. PyTorch随笔-4
  4. SpringBoot+AOP实现多数据源动态切换
  5. kubernetes怎么读_Kubernetes之有状态应用实践-搭建MySQL集群
  6. Nginx的启动阶段讲解
  7. (大数据工程师学习路径)第二步 Vim编辑器----Vim文档编辑
  8. 洛谷2661 信息传递 三倍经验?
  9. JavaScript面向对象实现
  10. Apache Commons Lang3 常用工具类库
  11. IT管理系统:让酒店更便宜
  12. 计算机系统维护课程设计报告,计算机系统维护工程(第2版)
  13. 为什么达芬奇能“艺工结合”,要从“T型设计”说起
  14. uni-app学习(四):带有下划线的标签选择
  15. 很有意境的语句[转]
  16. 怎样和虐死人的老项目谈恋爱
  17. 史蒂夫·乔布斯(简介)
  18. 红外视频中的移动目标检测
  19. 超实用的十条 VueRouter 高级技巧!
  20. 程序员职业资格软考——软考,你不想软就得考 (值得一看的总结)

热门文章

  1. 代码恒久远,GitHub 永流传!
  2. .NET Core如何为项目提供高性能解决方案?
  3. 安卓constraintLayout中app:srcCompat设置的图片显示不出来
  4. 面向对象设计:共性VS个性-------继承的粒度和聚合的粒度以及类的重构
  5. SpringBoot项目在IntelliJ IDEA中实现热部署
  6. python分析nginx日志,每分钟nginx请求超过10ms的比例
  7. pro*c 倒出数据库数据
  8. Sicily 1153: 马的周游问题(DFS+剪枝)
  9. 使用DDMS抓取安卓APP的奔溃日志
  10. (How to)WordPress与Windows Live Writer整合