Mysql连接查询、子查询、联合查询 整理
连接查询
连接语法的基本形式
from 表1 [连接方式] join 表2 [on 连接条件];
交叉连接
语法:
from 表1 [cross] join 表2 ; //可见交叉连接只是没有on条件而已。
cross这个词也可以省略,还可以使用inner这个词代替
内连接:
语法:
from 表1 [inner] join 表2 on 表1.字段1=表2.字段2;左[外]连接:
形式:
from 表1 left [outer] join 表2 on 连接条件。
左[外]连接:
形式:
from 表1 left [outer] join 表2 on 连接条件。
说明:
1,这里,left是关键字。
2,连接条件跟内连接一样。
3,含义是:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应放右边表的字段的位置就自动补为“null”值。
右[外]连接:
形式:
from 表1 right [outer] join 表2 on 连接条件。
说明:
1,这里,right是关键字。
2,连接条件跟内连接一样。
3,含义是:在内连接的结果基础上,加上右边表中所有不符合连接条件的数据,相应本应放左边表的字段的位置就自动补为“null”值。
全[外]连接
形式:
from 表1 full [outer] join 表2 on 连接条件;
说明:
1,含义:其实是左右连接的“并集”(消除重复项),即内连接的结果,加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。
2,mysql中其实不认识全[外]连接语法,即mysql这个软件本身不支持全连接的语法。
3,此概念在其他数据库有的存在,了解就可以。
什么叫子查询
in的基本语法形式为:
where 操作数 in (值1,值2, ....)
则in子查询就是:
where 操作数 in ( 列子查询 );
含义:
表示该操作数(字段值) 等于 该子查询的其中任意一个只,就算满足条件。
联合查询
联合查询的关键字是: union
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
select 语句1
union [ALL | DISTINCT]
select 语句2;
说明:
1,两个select语句的输出段(结果字段)一样数目一样,应用中通常类型一样才有意义。
2,结果集中的字段以第一个select语句的字段为准。
3,第一个select语句的字段可以做别名,但如果做别名,则后续的where,group,order等子句应该用该别名。
4,联合查询默认是会消除重复项的(DISTINCT),要想不消除,则必须明确些“ALL”。
5,如果要对整个联合结果进行排序或limit,则应该对各自的select语句加括号:
(select 语句1)
union
(select 语句2)
order by ..... limit ....;
Mysql连接查询、子查询、联合查询 整理的更多相关文章
- Mysql的查询语句(联合查询、连接查询、子查询等)
Mysql的各个查询语句(联合查询.连接查询.子查询等) 一.联合查询 关键字:union 语法形式 select语句1 union[union选项] select 语句2 union[union选项 ...
- mysql学习之路_联合查询与子查询
联合查询 联合查询:将多次查询(多条select语句)在记录上进行拼接(字段不会增加). 语法:多条select语句构成,每条select语句获取的字段必须严格一致(但是字段类型无关). Select ...
- 你了解MySQL中的多表联合查询吗?
前言: 多表联合查询,其实就是我们MySQL中的join语句,经常会看到有人说join非常影响性能,不建议使用,你知道这是为什么呢?我们究竟可不可以用呢? 测试数据: CREATE TABLE `t2 ...
- MySQL开发——【联合查询、多表连接、子查询】
联合查询 所谓的联合查询就是将满足条件的结果进行拼接在同一张表中. 基本语法: select */字段 from 数据表1 union [all | distinct] select */字段 fro ...
- MySQL连接查询(多表查询)
基本含义 连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”. 连接语法的基本形式:from 表1 [连接方式] join 表2 [on 连接条件]; 连接的结果可以当做一个“表”来使 ...
- mysql中联合查询
联合查询union 一个翻译问题的解释: 在mysql的手册中,将连接查询(Join)翻译为联合查询: 而联合查询(union),没有明确翻译. 但: 在通常的书籍或文章中,join被翻译为“连接”查 ...
- MySQL数据查询之多表查询
多表查询 多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment PRIMARY KEY, dna ...
- [办公自动化] 再读《让EXCEL飞》(从excel导入access数据时,union联合查询,数据源中没有包含可见的表格)
一年多以前就买了@Mrexcel的<让excel飞>这本书.整体思路是利用access结合excel,大幅度提高数据分析效率. 最近又拿出来看了看.第十五章,比高级筛选更“高级”,P241 ...
- thinkphp5---join联合查询
使用thinkphp3.2进行联合查询,join联合查询: $list = M('document as d') ->join('tp_admin_column as c on d.cid = ...
随机推荐
- LVS (Linux Virtual Server) 负载均衡
[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服 ...
- hdu-4300(kmp或者拓展kmp)
题意:乱七八糟说了一大堆,就是先给你一个长度26的字符串,对应了abcd....xyz,这是一个密码表.然后给你一个字符串,这个字符串是不完整的(完整的应该是前半部分是加密的,后半部分是解密了的),然 ...
- Java常用调试技巧(转)
调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...
- 解决Error:com.intellij.util.indexing.StorageException
删除 C:\Users\Nihaorz\.IntelliJIdea2017.1\system\compile-server 目录下的所有内容即可
- Go语言流程控制
1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...
- HDU1800 字典树写法
题意:高级魔法师可以教低级魔法师 魔法扫把技能,同时教会了的低级魔法师又可以教比他更低级是,是传递的关系 同时如果教会了的话,他们可以同时坐一个扫把 问最少需要多少个扫把 思路:就是判断相同的数字最多 ...
- python学习日记(流程控制习题)
请输出1-2+3...+99除88以外的和 i = 1 sum = 0 while i <= 99: if i == 88: i = i + 1 continue else: if i%2 == ...
- 【JVM】查看JVM加载的类及类加载器的方法
查看JVM加载了哪些类 java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息. java -verbose:class 在程序运行的时候有多少类被加载!你可以用ve ...
- 【Luogu4707】重返现世(min-max容斥)
[Luogu4707]重返现世(min-max容斥) 题面 洛谷 求全集的\(k-max\)的期望 题解 \(min-max\)容斥的证明不难,只需要把所有元素排序之后考虑组合数的贡献,容斥系数先设出 ...
- 通过Nifi 导入csv文件到HDFS
1. 拖入一个GetHttp 的processor 右健选择 configure -> properties , 设置 url 和 filename url : http://s ...