MySQL联合查询效率较高,以下例子来说明联合查询(内联、左联、右联、全联)的好处:

T1表结构(用户名,密码)

userid(int)   usernamevarchar(20)   passwordvarchar(20)

1           jack          jackpwd

2             owen          owenpwd

T2表结构(用户积分,用户等级)

userid(int)   jifenvarchar(20)   dengjivarchar(20)

1         20           3

3         50           6

第一:内联(inner join)

如果想把用户信息、积分、等级都列出来,那么一般会这样写:

select * from T1, T2 where T1.userid = T2.userid

(其实这样的结果等同于select * from T1 inner join T2 on T1.userid=T2.userid )。

把两个表中都存在userid的行拼成一行(即内联),但后者的效率会比前者高很多,建议用后者(内联)的写法。

SQL语句:

select * from T1 inner join T2 on T1.userid = T2.userid

运行结果

T1.userid   username   password   T2.userid   jifen   dengji

1                jack             jackpwd         1            20      3

内联:只查询符合连接条件的数据,不满足 on 后的连接条件的数据是不会被查询出来的。

第二:左联(left outer join)

显示左表T1中的所有行,并把右表T2中符合条件加到左表T1中;

右表T2中不符合条件,就不用加入结果表中,并且NULL表示。

SQL语句:

select * from T1 left outer join T2 on T1.userid = T2.userid

运行结果

T1.userid   username   password   T2.userid   jifen   dengji

1                jack        jackpwd     1       20      3

2        owen      owenpwd     NULL      NULL   NULL

左联:显示左表T1中的所有行,并把右表T2中符合on 后的条件的数据加到左表T1中,不符合条件用NULL代替。

左联:主表是左表。

第三:右联(right outer join)。

显示右表T2中的所有行,并把左表T1中符合条件加到右表T2中;

左表T1中不符合条件,就不用加入结果表中,并且NULL表示。

SQL语句:

select * from T1 right outer join T2 on T1.userid = T2.userid

运行结果

T1.userid   username   password   T2.userid   jifen   dengji

1           jack        jackpwd          1      20        3

NULL         NULL     NULL         3      50        6

右联:显示右表T2中的所有行,并把左表T1中符合on 后的条件的数据加到右表T2中,不符合条件用NULL代替。

右联:主表是右表。

第四:全联(full outer join)

显示左表T1、右表T2两边中的所有行,即把左联结果表 + 右联结果表组合在一起,然后过滤掉重复的。

SQL语句:

select * from T1 full outer join T2 on T1.userid = T2.userid

运行结果

T1.userid   username   password   T2.userid   jifen   dengji

1       jack       jackpwd          1       20      3

2            owen       owenpwd     NULL      NULL   NULL

NULL          NULL    NULL         3       50      6

全联:涵盖了 内联+左联+右联的所有数据,并且去掉了重复的数据。

总结,关于联合查询,效率的确比较高,4种联合方式如果可以灵活使用,基本上复杂的语句结构也会简单起来。

附:

另有自连接的写法,即 同一张表里的上下级关系查询。虽然归不到上面分类,但是也经常使用。这里暂只提到,请勿遗忘。

mysql 全关联查询_Mysql 关联查询(内联、左联、右联、全联)相关推荐

  1. mysql 内嵌查询_mysql嵌套查询_MySQL

    mysql嵌套查询_MySQL 一:创建ecs_goods表插入以下数据: +----------+------------------------------+--------+---------- ...

  2. mysql的右连接查询_mysql连接查询(左连接,右连接,内连接)

    一.mysql常用连接 INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录. LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录. RIGHT JOIN ...

  3. mysql的复杂查询_mysql复杂查询

    所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内 ...

  4. mysql数据库操作多表查询_MySQL数据库查询操作进阶——多表查询

    多表查询 在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询. 多表查询分为连表查询和子查询,连表查询即将相关联的表连 ...

  5. mysql查询_MySQL常用查询

    单表查询 ①查询所有     * mysql> select * from student; ②查询选中字段记录 mysql> select s_name from student; ③条 ...

  6. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  7. c3p0 参数 模糊查询_MySQL模糊查询用法大全(正则、通配符、内置函数等)

    文章来源:MySQL模糊查询用法大全(正则.通配符.内置函数等) 原文作者:陈哈哈 来源平台:CSDN SELECT * from table where username like '%陈哈哈%' ...

  8. mysql 最值复杂查询_MySQL高级查询

    我们使用SQL查询不能只使用很简单.最基础的SELECT语句查询.如果想从多个表查询比较复杂的信息,就会使用高级查询实现.常见的高级查询包括多表连接查询.内连接查询.外连接查询与组合查询等,今天我们先 ...

  9. mysql 组合查询_MySQL组合查询教程

    #MYSQL#这是我MySQL的第八篇教程.本篇主要介绍的是MySQL的组合查询的用法.在大多数的SQL查询中都只包含从一个或者多个表中返回数据的单条SELECT语句,MySQL其实也支持允许执行多条 ...

  10. mysql 什么是子查询_MySQL 子查询

    什么是子查询 为什么要使用子查询 子查询的分类 怎样使用子查询 关联子查询 要使用的数据表 image.png 1. 什么是子查询? 子查询顾名思义就是在正常查询之前先查询出来一条数据或者一个表. 子 ...

最新文章

  1. Vivado中两种RTL原理图的查看方法和区别
  2. 腾讯2017年第三季度财报:微信广告收入大幅增长
  3. mui汉字图标_MUI从入门到项目实战(三)增加自定义icon图标
  4. WCF常见问题及解决方案
  5. python语言是一门编程语言_python是一门怎样的编程语言?老男孩python入门
  6. 计算机网络发展第二阶段 兴起于,计算机辅助开始于计算机发展第几阶段
  7. 第4篇:Flowable-Modeler详述之流程概述
  8. eclipse 快捷键
  9. python半径为2.11的圆球的体积_python 学习笔记 11 -- 使用参数使你的程序变得更性感...
  10. python不会英语不会数学怎么自学-26岁了,自学Python怎么样?
  11. 2021年氯化工艺考试题库及氯化工艺考试试卷
  12. springboot集成jooq异常集合
  13. MySQL语句练习---由简入繁
  14. chrome浏览器怎么设置编码
  15. 汇编c 易语言编程软件,这些汇编用易语言怎么写?
  16. 分布式事务解决方案Seata
  17. 【Python】函数
  18. 3D点云论文相关论文资料总结
  19. 设计算法求集合{1, 2, ..., n}的幂集
  20. Leakcanary的使用

热门文章

  1. HeadFirstJava学习心得——网络编程
  2. 如何从Java官网下载 Java API 文档
  3. 2019年1月30日
  4. HTML ===> 页面添加数学公式
  5. Linux知识点小结--精华总结
  6. OpenSSL 1.1.1 国密SM2 SM3 SM4 SM9 ZUC EEA3 EIA3 SM2 +SM3签名 源码 Demo 下载 OpenSSL iOS端库下载
  7. McAfee迈克菲杀毒软件企业版8.8.13-McAfee VirusScan Enterprise8.8 百度云
  8. 历史上的重大软件BUG启示录 第6篇---蠕虫“冲击波”
  9. 【终终极版】linux(Ubuntu)下wineQQ的安装办法
  10. 微信僵尸粉源码php,清除微信僵尸粉工具源码