首页
学习
活动
专区
圈层
工具
发布

Mysql常用sql语句(14)- 多表查询

测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,每次查询基本都是需要结合多个表去查询数据...,所以Mysql的多表查询我们必须掌握 多表查询可以是两张表,也可以是很多张表,取决于需要查询的数据要关联多少张表 有哪些多表查询 cross join:交叉连接 inner join:内连接 left...join:左外连接 right join:右外连接 union、union all:全连接 多表查询的区别 查询类型 简述 图表 inner join 获取两个表中字段相互匹配关系的记录 即两表记录都不为...右表为空的字段补null right join 获取右表所有记录 左表为空的字段补null union 获取左右表所有记录 cross join 两张表的笛卡尔积 执行SQL 后面详细讲每种多表查询的时候

1.6K10

【MySQL数据库】多表关系与多表联合查询

目录 MySQL多表关系 一对一 一对多 多对多 MySQL外键约束 创建外键 数据插入 删除 多表联合查询 交叉连接查询 内连接查询 外连接查询 子查询关键字 自关联 MySQL多表关系 MySQL...添加主表数据 -- 注意必须先给主表添加数据 添加从表数据 -- 注意给从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列 删除 主表的数据被从表依赖时,不能删除,否则可以删除 从表的数据可以随便删除 多表联合查询...子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询,从而一起完成复杂查询的一种编写形式,通俗一点就是包含select嵌套的查询。...select …from …where c > all(查询语句) --等价于: select ...from ... where c > result1 and c > result2 and c >...,推荐使用EXISTS关键字 select …from …where exists(查询语句) 自关联  自关联.

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql数据库-多表查询案例

    Mysql数据库-多表查询案例 我们在公司开发中,根据不同的业务需求往往需要通过2张及以上的表中去查询需要的数据。所以我们有必要学习2张及以上的表的查询。其实不管是几张表的查询,都是有规律可循的。...练习 2.1 练习1 查询所有员工信息。...JOIN salarygrade s ON e.job_id=j.id AND e.dept_id=d.id AND e.salary BETWEEN s.losalary AND hisalary; 多表查询规律总结...不管我们查询几张表,表连接查询会产出笛卡尔积,我们需要消除笛卡尔积,拿到正确的数据。...(条件数量=表的数量-1),每张表都要参与进来 多表连接查询步骤:3.1. 确定要查询哪些表 3.2. 确定表连接条件 3.3. 确定查询字段 2.4 练习4 查询经理的信息。

    5.3K20

    【MySQL数据库】多表关系与多表联合查询

    ​​目录MySQL多表关系一对一一对多多对多MySQL外键约束创建外键数据插入删除多表联合查询交叉连接查询内连接查询外连接查询子查询关键字自关联MySQL多表关系MySQL表与表之间的三种关系一对多关系...数据插入添加主表数据 -- 注意必须先给主表添加数据添加从表数据 -- 注意给从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列删除主表的数据被从表依赖时,不能删除,否则可以删除从表的数据可以随便删除多表联合查询​编辑...right outer join B on 条件; 满外连接: full outer join select * from A full outer join B on 条件;子查询关键字子查询就是指的在一个完整的查询语句之中...result2 or c > result3...ININ关键字,用于判断某个记录的值,是否在指定的集合中在IN关键字前边加上not可以将条件反过来select …from …where c > in(查询语句...当返回真时 where条件成立注意,EXISTS关键字,比IN关键字的运算效率高,因此,在实际开发中,特别是大数据量时,推荐使用EXISTS关键字select …from …where exists(查询语句

    4.2K30

    mysql 多表查询

    一、使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件 SELECT a.id,a.name,a.address...WHERE子句的查询条件即称为内连接 五、复杂的嵌套查询 多表之间的嵌套查询可以通过谓词IN实现,语法格式如下: test_expression[NOT] IN{ subquery } 参数说明...:test_expression指SQL表达式,subquery包含某结果集的子查询 多表嵌套查询的原理:无论是多少张表进行嵌套,表与表之间一定存在某种关联,通过WHERE子句建立此种关联实现查询 六...,这样可以方便用户在使用mysql_fetch_array()函数时为表项赋值,如 SELECT (SELECT AVG(chinese) FROM tb_demo071) AS yuwen ,(SELECT...GROUP BY分组语句和HAVING语句实现条件联合查询。

    7.8K10

    MySQL 多表查询

    # MySQL 多表查询 mysql多表查询 问题的引出(重点,难点) 说明 多表查询练习 自连接 mysql表子查询 什么是子查询 单行子查询 多行子查询 在多行子查询中使用 all 操作符 在多行子查询中使用...any 操作符 多列子查询 在 from 子句中使用子查询 表复制 自我复制数据(蠕虫复制) 合并查询 介绍 外连接 课堂练习 # mysql多表查询 # 问题的引出(重点,难点) # 说明 多表查询是指基于两个和两个以上的表查询....在实际应用中,查询单个表可能不能满足你的需求. # 多表查询练习 -- 多表查询 -- 显示雇员名,雇员工资及所在部门的名字【笛卡尔积】 SELECT * FROM salgrade SELECT...表子查询 # 什么是子查询 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 # 单行子查询 单行子查询是指只返回一行数据的子查询语句 请思考:如何显示与 SMITH 同一部门的所有员工...多列子查询是指查询返回多个列数据的子查询语句。

    5.7K20

    MySQL多表查询

    MySQL多表查询 交叉连接查询 语法:selectfrom 表1 cross join 表2; 或  selectfrom 表1,表2; 这样查询到的结果为两个表中所有数据行的乘积即笛卡尔积...内连接查询: 注意:要查询的表,查询的条件,查询的字段。...复合条件连接查询 定义:复合条件连接查询就是在连接查询的过程中,通过添加过滤条件来限制查询结果,使查询结果更加精确。 子查询(嵌套查询) 定义:子查询是指一个查询语句嵌套在另一个查询语句内部的查询。...在执行查询语句时,首先会执行子查询中的语句,然后将返回的结果作为外层查询的过滤条件。...IN :用于判断一个给定值是否存在于子查询的结果集中。 EXISTS :用于判断子查询的结果集是否为空。若子查询的结果集不为空,则返回 TRUE;否则返回 FALSE。

    4.5K10

    【数据库】MySQL进阶八、多表查询

    【数据库】MySQL进阶八、多表查询 MySQL多表查询 一 使用SELECT子句进行多表查询 SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件...:子查询是一个SELECT查询,返回单个值且嵌套在SELECT、INSERT、UPDATE和DELETE语句或其它查询语句中,任何可以使用表达式的地方都可以使用子查询....WHERE子句的查询条件即称为内连接 五 复杂的嵌套查询 多表之间的嵌套查询可以通过谓词IN实现,语法格式如下: test_expression[NOT] IN{ subquery } 参数说明:...test_expression指SQL表达式,subquery包含某结果集的子查询 多表嵌套查询的原理:无论是多少张表进行嵌套,表与表之间一定存在某种关联,通过WHERE子句建立此种关联实现查询 六...GROUP BY分组语句和HAVING语句实现条件联合查询。

    3.3K40

    数据库-MySQL-多表查询(总结)

    目录 前言 多表查询概述 多表查询分类 1、连接查询 2、子查询  内连接 内连接查询语法  案例演示 外连接 外连接查询的语法 案例演示   联合查询-union,union all 子查询 概念 分类...标量子查询 自连接 自连接查询语法 案例演示 子查询 列子查询 行子查询 表子查询 ---- 前言 项目开发中,在进行数据库表结构关系设计时,会根据业务需求及业务模块之间的关系,分析设计表结构,由于业务之间相互关联...varchar(10) comment '课程名称' )comment '课程表'; insert into course values (null,'Java'),(null,'PHP'),(null,'MySQL...(在多表查询中,需要消除无效的迪卡尔积)  案例: 使用上篇文章所用的表格emp和demp emp表  dept表  输入 --多表查询--笛卡尔积 select * from emp,dept...where salary < 10000 union select * from emp where age < 50; 结果为 子查询 概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询

    1.4K30

    MySQL数据库基础(十一):多表查询

    多表查询 一、交叉连接(了解) 它是所有连接的基础,其功能就是将表1和表2中的每一条数据进行连接。...连接查询可以实现多个表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成。...连接查询可以分为: 内连接查询 左外连接查询 右外连接查询 2、内连接查询 查询两个表中符合条件的共有记录 内连接查询语法格式: select 字段 from 表1 inner join...内连接根据连接查询条件取出两个表的 “交集” 三、左外连接 1、左连接查询 以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值填充 左连接查询语法格式: select 字段...四、右外连接 1、右连接查询 以右表为主根据条件查询左表数据,如果根据条件查询左表数据不存在使用null值填充 右连接查询语法格式: select 字段 from 表1 right join 表2 on

    1.1K10

    MySQL基础-多表查询

    文章目录 MySQL基础-多表查询 一、案例及引入 1、基础概念 2、笛卡尔积的理解 二、多表查询的分类 1、等值连接 vs 非等值连接 2、自连接 vs 非自连接 3、内连接 vs 外连接 三、...UNION的使用 四、7种SQL JOINS的实现 五、SQL99语法新特性 MySQL基础-多表查询 一、案例及引入 1、基础概念 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作 前提条件...:查询员工的姓名及其部门名称 SELECT last_name, department_name FROM employees, departments; 说明:上述多表查询中出现的问题称为:笛卡尔积的错误...各个SELECT语句之间使用UNION或UNION ALL关键字分隔 UNION 操作符返回两个查询的结果集的并集,去除重复记录 UNION ALL操作符返回两个查询的结果集的并集。...FROM table2 注意:执行UNION ALL语句时所需要的资源比UNION语句少 如果明确知道合并数据后的结果数据不存在重复数据,或者不需要去除重复的数据,则尽量使用UNION ALL语句,以提高数据查询的效率

    3.9K20

    MySQL多表查询详解

    一使用SELECT子句进行多表查询SELECT 字段名 FROM 表1,表2 … WHERE 表1.字段 = 表2.字段 AND 其它查询条件SELECT a.id,a.name,a.address,a.date...IN实现,语法格式如下:test_expression[NOT] IN{ subquery }参数说明:test_expression指SQL表达式,subquery包含某结果集的子查询多表嵌套查询的原理...:无论是多少张表进行嵌套,表与表之间一定存在某种关联,通过WHERE子句建立此种关联实现查询六嵌套查询在查询统计中的应用实现多表查询时,可以同时使用谓词ANY、SOME、ALL,这些谓词被称为定量比较谓词...GROUP BY分组语句和HAVING语句实现条件联合查询。...多表查询》,请注明出处:https://www.zhoulujun.cn/html/DB/mysql/2015_1027_332.html

    2.6K10

    数据库-MySQL-基础(11)-多表查询

    目录 联合查询-union,union all 子查询 概念 分类 标量子查询 ---- 联合查询-union,union all 对于nuion 查询,就是把多次查询的结果合并起来,形成一个新的查询结果集...where salary < 10000 union select * from emp where age < 50; 结果为 子查询 概念 SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询...SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2); 子查询外部的语句可以是INSERT  /  UPDATE / DELETE /...分类 根据子查询结果不同,分为: >标量子查询(子查询结果为单个值) >列子查询(子查询结果为一列) >行子查询(子查询结果为一行) >表子查询(子查询结果为多行多列) 根据子查询位置...标量子查询 子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询成为标量子查询。

    1.1K30
    领券