本节所涉及的SQL语句:

-- 表连接查询
-- 查询每名员工(员工名字,编号)的部门信息(部门编号,部门名称) SELECT e.empno,e.ename,d.dname
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno; -- 内连接
-- 衍生语法1
SELECT e.empno,e.ename,d.dname
FROM t_emp e JOIN t_dept d WHERE e.deptno=d.deptno;
-- 衍生语法2
SELECT e.empno,e.ename,d.dname
FROM t_emp e,t_dept d WHERE e.deptno=d.deptno; -- 查询每个员工的工号、姓名、部门名称、底薪、职位、工资等级 SELECT e.empno,e.ename,d.dname,e.sal,e.job,s.grade
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno
JOIN t_salgrade s ON e.sal BETWEEN s.losal AND s.hisal -- 查询与Scott 相同部门的员工都有谁 SELECT deptno
FROM t_emp
WHERE ename="SCOTT";
-- 版本1
SELECT ename
FROM t_emp
WHERE deptno=(SELECT deptno FROM t_emp WHERE ename="SCOTT")
AND ename!="SCOTT"; -- 版本2
SELECT e2.ename
FROM t_emp e1 JOIN t_emp e2 ON e1.deptno=e2.deptno
WHERE e1.ename="SCOTT" AND e2.ename!="SCOTT"; 上面第一种方式从语句上看显然是效率不高的,而且条件嵌套也不优雅,
这种解决问题的思路符合一般想法,但是这种思路的出发点是个人的单打独斗思维,总想着一个人去解决问题。
下面这种方式的思路则是寻求帮助,一个人不好解决的问题,通过寻找帮助去搞定。 从语句上看是利用了自己,将从一个表中嵌套解决的问题转移到了自己的副表上,相当于多出了两只手。 语句上是“自己通过deptno与自己的副本相关联”,通过deptno相关联这句话需要深刻理解,这句话究竟是什么意思?两张表通过某个字段关联在了一起究竟是什么意思? 意思是一张表中的信息,通过共有字段这个桥梁,可以在另一张表中找到所对应的信息,比如员工表中有部门编号,但是看不到部门的详细信息,因为这些信息在部门表中存着,但是部门表中也有部门编号这个字段,这样我们就可以通过这个部门编号,获得员工所在的部门的详细信息。 所以两张表通过某个字段关联在一起,可以通过这个共有字段,找到自己在另一张表中的信息。因此,自己与副本通过部门编号关联在一起,自己就可以通过部门编号,找到部门编号在副本中所对应的信息。具体来说就是,SCOTT 这个员工,通过自己的部门编号20,可以在副本中找到部门编号20所对应的信息,也就是20这个部门的所有员工信息,即从多对一到一对多的查询。注意后者对应的多,而不是具体的某一个值。 所以这个语句的含义就是:将自己与副本通过部门编号相关联,然后通过条件ename=Scott,找到自己的部门编号所对应的整个部门的人员信息 SELECT e2.ename
FROM t_emp e1 JOIN t_emp e2 ON e1.deptno=e2.deptno
WHERE e1.ename="SCOTT" AND e2.ename!="SCOTT";

19_MySQL表的内连接的更多相关文章

  1. Ajax案例:三级联动查询员工的信息(三张表进行内连接)

    需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉 ...

  2. Day055--MySQL--外键的变种,表与表的关系,单表查询,多表查询, 内连接,左右连接,全外连接

    表和表的关系 ---- 外键的变种 * 一对多或多对一 多对多 一对一 参考 https://www.cnblogs.com/majj/p/9169416.html 如何找出两张表之间的关系 分析步骤 ...

  3. 08_MySQL DQL_SQL99标准中的多表查询(内连接)

    # sql99语法/*语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having 分 ...

  4. HOL的多表查询——内连接、外连接

    1.内连接: 由于学生和班级是多对一的关系,班级对应学生是一对多的关系,因此,需要先对学生和班级进行配置. (1)创建Student类(多的一方): package pers.zhb.domain; ...

  5. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  6. 20_MySQL表的内连接实操

    -- 查询底薪超过公司平均底薪的员工信息 -- 方法1 SELECT empno,ename FROM t_emp HAVING sal>AVG(sal); 因为在having中不能拿一个字段与 ...

  7. SQL中的连接可以分为内连接,外连接,以及交叉连接 。

    SQL中的连接可以分为内连接,外连接,以及交叉连接 . 1. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积: 举例, ...

  8. SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    SQL连接可以分为内连接.外连接.交叉连接. 数据库数据:             book表                                          stu表 1.内连接 ...

  9. SQL连接:内连接、外连接、交叉连接。

    SQL连接可以分为内连接.外连接.交叉连接. 数据库数据:             book表                                          stu表 1.内连接 ...

随机推荐

  1. mapreduce编程练习(二)倒排索引 Combiner的使用以及练习

    问题一:请使用利用Combiner的方式:根据图示内容编写maprdeuce程序 示例程序 package com.greate.learn; import java.io.IOException; ...

  2. samba 随笔

    SElinux以及防火墙的关闭 关闭SELinux的方法: 修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启. 如果不想重启 ...

  3. 6.DHCP配置故障转移(Windows2012)

    准备: 子网对应核心交换机网关配置多个中继 interface Vlan64 ip address 10.10.64.1 255.255.248.0 ip helper-address 10.10.1 ...

  4. jvm系列三垃圾回收

    三.垃圾回收 1.如何判断对象可以回收 引用计数法 弊端:循环引用时,两个对象的计数都为1,导致两个对象都无法被释放 可达性分析算法 JVM中的垃圾回收器通过可达性分析来探索所有存活的对象 扫描堆中的 ...

  5. 【xml】控件常用属性

    https://www.cnblogs.com/xqz0618/p/textview.html (常用,生动) https://www.jianshu.com/p/992324336dd9 (全,简洁 ...

  6. 从NMEA0183到GNSS定位数据获取(二)软件篇

    作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述 GPS我们都知道,一种用来全球定位的系统,后来俄罗斯推出了格洛纳斯定位系统,中国推出了北斗定位,欧盟有 ...

  7. Qt update刷新之源码分析(一)

    在做GUI开发时,要让控件刷新,会调用update函数:那么在调用了update函数后,Qt究竟基于什么原理.执行了什么代码使得屏幕上有变化?本文就带大家来探究探究其内部源码. Qt手册中关于QWid ...

  8. 二进制方法-部署k8s集群部署1.18版本

    二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...

  9. Codeforces Round #640 (Div. 4)

    比赛链接:https://codeforces.com/contest/1352 A - Sum of Round Numbers 题意 将一个十进制数的每一个非零位分离出来. 代码 #include ...

  10. L2-007 家庭房产 (25分) 并查集

    题目链接 题解:并查集把一个家的并在一起,特殊的一点是编号大的并到小的去.这个题有个坑编号可能为0000,会错数据3和5. 1 #include<bits/stdc++.h> 2 usin ...