MySQL连接查询(多表查询)
基本含义
连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”。
连接语法的基本形式:from 表1 【连接方式】 join 表2 【on 连接条件】;
连接的结果可以当做一个“表”来使用。
1.内连接:
语法:from 表1 【inner】 join 表2 on 表1.字段1=表2.字段2;
含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。
例如:以下是两个相关的表格product_type 和 product
可以使用内连接使其结合成为一张表,这里因为两个表中都使用了protype_id,所以使用t1. t2.来代替表1和表2
select * from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;
结果如下:
也可以指定只列出其中部分字段:
select t1.pro_id,pro_name,price, t2.protype_name from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;
结果如下:
2.左/右(外)连接
形式:from 表1 left/right [outer] join 表2 on 连接条件。
说明:
1,这里,left/right是关键字。
2,连接条件跟内连接一样。
3,含义是:内连接的结果基础上,加上左/右边表中所有不符合连接条件的数据,相应放右/左边表的字段的位置就自动补为“null”值。
3.子查询 in
子查询就是把一个查询的结果当做另一个查询的条件
in的基本语法形式为:
where 操作数 in(值1,值2,...);
则in子查询就是:
where 操作数 in(列子查询);
含义:
表示该操作数(字段值) 等于该子查询的其中任意一个只,就算满足条件。
例如:找出上表中所有带“电”字的类别的产品
第一步:找出所有带“电”字的类别ID:
select protype_id from product_type where protype_name like '%电%';
第二步:根据结果找出这些类别的产品:
select * from product where protype_id in (1,3);
实际上就等于
select * from product where protype_id in(
select protype_id from product_type where protype_name like '%电%'
);
4.联合查询
联合查询的关键字是: union
基本含义:
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
语法形式:
select 语句1
union
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 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...
- MySQL数据库语法-多表查询练习一
MySQL数据库语法-多表查询练习一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的多表查询的外键约束,以及如何使用外链接和内连接查询数据信息. 一.数据表和测试 ...
- mysql 数据操作 多表查询 准备
为什么需要多表查询: 因为我们不可能把所有数据都放在一张表里 我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储. 但是数据还是一个整体,数据之间是有关 ...
- day04 mysql单表查询 多表查询 pymysql的使用
day04 mysql pymysql 一.单表查询 1.having过滤 一般用作二次筛选 也可以用作一次筛选(残缺的: 只能筛选select里面 ...
- mysql数据库之单表查询
单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...
- MySQL中的联表查询与子查询
0.准备数据 1.内连接:INNER JOIN 2.左连接:LEFT JOIN 3.右连接:RIGHT JOIN 4.USING子句 扩展知识点: 0.表别名的使用: 1.group by的用法 2. ...
- mysql 数据操作 单表查询 目录
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...
- mysql 数据操作 单表查询 where 约束 目录
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...
- mysql 数据操作 单表查询 group by 分组 目录
mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
随机推荐
- oracle 使用exp命令 sys用户登录 导出表存为dmp文件
在cmd下面,使用exp命令,格式为 exp \"sys/123456@dbname as sysdba\" file=d:\dmp\test.dmp tables=sys.tes ...
- CH#17C 舞动的夜晚
原题链接 即求二分图的不可行边数量,因为不保证是完备匹配,所以需要通过网络流求出任意一组最大匹配,并建立新图判断. 建新图:对于跑完网络流的图上已经匹配的边,建立反边:对于没有匹配的边,建立正边(图只 ...
- 实用SQL大全
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- [线段树]picture
PICTURE 题目描述 N(N<5000) 张矩形的海报,照片和其他同样形状的图片贴在墙上.它们的边都是垂直的或水平的.每个矩形可以部分或者全部覆盖其他矩形.所有的矩形组成的集合的轮廓称为周长 ...
- QT学习之路(1):彩票绝对不中模拟器
//============================================//绝对不中,彩票开奖模拟器#include "mainwindow.h"#includ ...
- Spring 系列教程之自定义标签的解析
Spring 系列教程之自定义标签的解析 在之前的章节中,我们提到了在 Spring 中存在默认标签与自定义标签两种,而在上一章节中我们分析了 Spring 中对默认标签的解析过程,相信大家一定已经有 ...
- Flex 排序 SortField and Sort
部分代码 var arrayOfCat:ArrayCollection=outerDocument.getCagegory(); // 需要排序的数组 //创建SortField对象 var so ...
- kbmmw 5.02发布
5.02.00 May 27 2017 Important notes (changes that may break existing code) ========================= ...
- Oracle服务器修改IP后
机房有两套网络,一套办公网,一套机房的内网,办公网可以通过vpn在其他地方访问,内网只能在公司办公室访问.团队有同事去外地办公,开发的时候需要通过客户端直连数据库,于是把数据库服务器的网线换到办公网的 ...
- mysql字符串类型数据
字符串类型是在数据库中存储字符串的数据类型,字符串类型包括char,varchar,text,enum和set. OK,我们来一个一个的看下上面提到的几种类型. char类型和varchar类型 ch ...