美文网首页
15.多表查询--内连接

15.多表查询--内连接

作者: Liuzhl | 来源:发表于2018-12-21 11:17 被阅读100次

1. 合并结果集

  • 只要从多张表查出来的数据的结果集列数和类型相同,就能合并
  • UNION ALL 不去重
SELECT deptno, dname FROM dept
UNION ALL
SELECT empno, ename FROM emp
  • UNION 去重
SELECT deptno, dname FROM dept
UNION
SELECT empno, ename FROM emp

内连接

1. 笛卡尔积
  • 直接查询2张表会产生笛卡尔积,即a表的每条数据都要匹配一次b表的每条数据,那么总数据就是 a表数据条数 * b表数据条数,这里面的有许多数据都不是我们需要的
SELECT * FROM emp, dept
笛卡尔积.png
  • 这里截取了12条数据,只有3条数据是我们需要的,条件就是emp.deptno = dept.deptno, 所以我们就可以用这个条件来去除笛卡尔积
SELECT * FROM emp, dept WHERE emp.deptno = dept.deptno
去除笛卡尔积后的结果.png

2. 多表取指定列,以及表别名

  • 在多表中取出指定列来得到一个结果集,需要指定表名
  • 如查询员工名字、工作、工资、部门
SELECT emp.ename, emp.job, emp.sal, dept.dname 
FROM emp, dept
WHERE emp.deptno = dept.deptno
查询多表指定列.png
  • 有些时候,因为命名规范会造成表名过长,我们可以给表取别名来简化sql语句
SELECT e.ename, e.job, e.sal, d.dname 
FROM emp e, dept d
WHERE e.deptno = d.deptno
内连接的3种写法
  1. 方言, 只在mysql数据库中生效,也就是上面我们用的写法
SELECT * FROM 表1, 表2 WHERE表1.xx = 表2.xx
SELECT * FROM emp, dept WHERE emp.deptno = dept.deptno
  1. 标准: sql规范
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.xx = 表2.xx
SELECT * FROM emp INNER JOIN dept ON emp.deptno = dept.deptno
  1. 自然:根据2张表中列名相同的列进行自动匹配
SELECT * FROM 表1 NATURAL JOIN 表2 
SELECT * FROM emp NATURAL JOIN dept

相关文章

  • 15.多表查询--内连接

    1. 合并结果集 只要从多张表查出来的数据的结果集列数和类型相同,就能合并 UNION ALL 不去重 UNION...

  • 003 多表查询, 事务和DCL.

    多表查询 多表查询: 笛卡尔积.内连接查询隐式内连接 : 使用where.eg: select * from ...

  • SQL语句常用命令整理---多表查询

    多表查詢之关连查询 多表数据连接查询,简称连接查询。本篇我们来一同学习多表连接查询的相关用法,主要內容有: 内连接...

  • Oracle连接_子查询

    多表查询:多张表关联在一起进行查询,在多表查询中会频繁的使用表的别名。连接:内连接(等值连接):select 列名...

  • 2018-08-30

    今天学习了Oracle的多表连接,组函数,分组查询,子查询,常用函数。 多表连接有三种类型:内连接,外连接,自连接...

  • MySQL元数据获取基础笔记day05

    多表连接查询 1、作用 业务需要的数据来自多张表时 2、多表连接查询基本语法 ??内连接? 外链接全链...

  • python面试题01

    1、什么是多表关联查询,有几种多表关联的查询方式,分别是什么? 多表关联查询概念: 多表关联查询分类:1.1内连接...

  • 深入浅出MySQL(五)

    多表查询 MySQL中的多表联查 MySQL中多表查询分为三种形式: 笛卡尔积的形式 内连接的形式 外连接的形式 ...

  • 多表连接查询

    多表连接查询 -- 1. 预备工作 -- 2. 多表连接的类型 -- 笛卡尔乘积 -- 内连接 (取交集) -- ...

  • 多表查询

    多表查询时,容易产生笛卡尔积,应避免在无任何条件时做多表联合查询。 内连接 等值连接查询条件中使用=作为连接条件 ...

网友评论

      本文标题:15.多表查询--内连接

      本文链接:https://www.haomeiwen.com/subject/uhylkqtx.html