MySQL-第十篇多表连接查询
1、SQL92规范、SQL99规范
2、广义笛卡尔积,多表之间没有任何连接条件,得到的结果将是N x M条记录。
3、SQL92中的左外连接、右外连接,连接符有(+或*),放在连接条件那一边就叫做左或右外连接。
4、SQL99的连接查询
1》交叉连接(cross join):就是广义笛卡尔积,不需要任何连接条件。
2》自然连接(natural join):看是没有连接条件,实际以两个表中所有同名列作为连接条件,如果没有同名列则变成了交叉连接。
3》using子句连接:using子句可以指定一列或者多列,用于显式指定两个表中的同名列作为连接条件。两个表必须都要有同名列,否则出错。
4》on子句连接:连接条件。
5、左、右、全连接:left[outer] join、right[outer] join、full[outer] join,通过on子句来指定,既可以是等值连接,又可以是非等值连接。
左连接:左表所有记录都会被查出。
右连接:右表所有记录都会被查出。
全连接:SQL99将全外连接两个表中所有不满足连接条件的记录全部列出。(MySQL没有全连接)
6、子查询
子查询就是在查询语句中嵌套另一个查询,子查询支持多层嵌套查询。
将子查询当成数据表的用法,实际是把它作为一个视图使用,也叫行内视图。
如果子查询返回多个值,在where子句中比较,可以使用in、any、all等关键字。
any、all可以与>、>=、<、<、<=、<>、=等运算符结合使用。意思分别是其中任意一个、其中所有。=any相当于in的用法。<any小于最大值。>any大于最小值。<all小于最小值。>all大于最大值。
7、集合运算:交intersect、并union、差minus
能进行集合运算的两个结果集,必须满足:
==>两个结果集包含的数据列数必须相等
==>两个结果集包含的数据列的数据类型必须一致。
1》union并运算
格式:
select 语句 union select 语句
2》minus差运算(MySQL并不支持)
格式:
select 语句 minus select 语句
select c_1,c_2 from xxx
where (c_1,c_2)
not in
(select b_1,b_2 from yyy);
3》intersect交运算(MySQL并不支持)
格式:
select 语句 inserct select 语句
select c_1,c_2 from xxx
join
yyy
on (c_1=b_1 and c_2=b_2);
MySQL-第十篇多表连接查询的更多相关文章
- mysql自关联和多表连接查询
自关联操作 多表连接查询 inner join 内查询 left join 左查询 right join 右查询 ...
- MySQL中基本的多表连接查询教程
一.多表连接类型1. 笛卡尔积(交叉连接) 在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用',' 如: SELECT * FROM table1 CROSS JOIN ...
- mysql(4)—— 表连接查询与where后使用子查询的性能分析。
子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果. 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表 ...
- MySQL之多表查询一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习
MySQL之多表查询 阅读目录 一 介绍 二 多表连接查询 三 符合条件连接查询 四 子查询 五 综合练习 一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 首先说一下,我们写项目一般都会建 ...
- Mysql表连接查询
原文地址: https://www.cnblogs.com/qiuqiuqiu/p/6442791.html 1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等 ...
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所在的部门 ...
- MySQL数据库:多表连接查询
多表连接查询 注意:使用连接技术建议将表经行重命名! # explain 检索连接是否达标 # 内连接 # 语法1 from 表1 inner join 表2 on 主键字段=外键字段 [where ...
- mysql--多表连接查询
一.多表连接查询 SELECT 字段列表 FROM 表1 INNER|LEFT|RIGHT JOIN 表2 ON 表1.字段 = 表2.字段; 1.交叉连接:不适用任何匹配条件.生成笛卡尔积 sele ...
随机推荐
- SpringCloude学习脑图
SpringCloude学习脑图 http://naotu.baidu.com/file/3e619862813ac331c5d9806486771b42?token=1a7206b777280c6b
- python 使用wxpy实现获取微信好友列表 头像 群成员
最近在学习 python 突然想要试试能不能把微信里面的微信群和好友取出来 结果百度了一下 找到了 wxpy 这怎么能不试一下呢 用到 wxpy.threading.os.time 四个库 第一步 判 ...
- JS 图片转blob 转base64
//转换为blob有跨域限制 var loadImageToBlob = function (url, callback) { if (!url || !callback) return false; ...
- Arduino库
单总线库: 下载地址 : 链接:https://pan.baidu.com/s/1YSuqrXWuBAxMEUWHy8rckw 提取码:svix 把整个文件夹复制到 Arduino安装目录的 ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
- CSS3——PC以及移动端页面适配方法(响应布局)
响应布局就是不同宽度应用不同的样式块,每个样式块对应的是该宽度下的布局方式,从而使页面适应不同宽度. <!DOCTYPE html> <html lang="en" ...
- js 文件下载 兼容ie
前置条件:后台接口返回二进制流文件 一.设置前端请求的的 responseType: 'blob' 二.接收请求数据并调用下载 var content = res.data // 接口返回的二进制流v ...
- Shell-04
grep程序 Linux下文本处理三剑客-----grep sed awk sed:文本行编辑器(流编辑器) awk:报告生成器(文本输出格式化) grep:文本行过滤工 ...
- Oracle的分页和MySQL的分页
Oracle的分页: select * from ( select rownum r,a from tabName where rownum <= 20 ) where r > 10 使用 ...
- Mobile的HTML5网页内快速滚动和回弹的效果
style="overflow: auto;-webkit-overflow-scrolling: touch; 这个可以让页面在Native端滚动时模拟原生的弹性滚动效果 下面是微信浏览器 ...