例题:#  各个部门中 最高工资中最低的那个部门的 最低工资是多少?

先考虑取得各个部门最高工资

SELECT MAX(salary) AS max_salary,e.`department_id`  did
FROM employees e
GROUP BY e.`department_id`

结果为:

再将此表命名tmp在进行查询

SELECT MIN(max_salary),did
FROM
(SELECT MAX(salary) AS max_salary,e.`department_id` did
FROM employees e
GROUP BY e.`department_id`)AS tmp

此时结果却为:

由此可见查询之后的表结构数据之间并无关系

因此应该使用其中的单列数据

解法一:

ELECT MIN(e2.salary)
FROM employees e2
WHERE e2.department_id =
(SELECT e1.department_id
FROM employees e1
GROUP BY e1.department_id
HAVING MAX(e1.salary) =
(SELECT MIN(tmp.max_salary) AS min_salary
FROM(
SELECT MAX(salary) AS max_salary,e.`department_id` did
FROM employees e
GROUP BY e.`department_id`
)AS tmp
)
)

或者将此表与主表进行关联查询

解法二:

SELECT e1.salary
FROM employees e1,
(SELECT MAX(salary) AS max_salary,e.`department_id` did
FROM employees e
GROUP BY e.`department_id`
ORDER BY max_salary
LIMIT 0,1
)AS temp
WHERE e1.department_id = temp.did

不理解数据库的基础就会犯这种低级错误哈哈

sql关联查询—将一个表的查询结果作为新表进行查询操作的更多相关文章

  1. C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)

    原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高.  包装了一个简单的sql ...

  2. SELECT INTO - 从一个查询的结果中创建一个新表

    SYNOPSIS SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [ ...

  3. SQL Server 复制表结构以及数据,去除表中重复字段

    --复制另一个数据库中的某张表的结构及数据--select * from Test.dbo.TestTable(查询表中所有数据) --into [表名] 插入当前数据库新表,如果没有该表就创建 se ...

  4. MySQL用sql复制表数据到新表的方法

    用sqlyog无法直接复制出一个不同表名的表来,只能copy到其他库上同名的表. 在MySQL数据库中,应该如何用sql将表数据复制到新表中呢? 本人通过试验测试成功了,而且相当简单易懂,速度也非常快 ...

  5. sql创建备份表和复制数据到备份表

    1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable; ...

  6. DROP TABLE ** CASCADE CONSTRAINTS PURGE删除表的时候级联删除从表外键

    1.关于 cascade constraints 假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键). 则当删除A表时,如不特殊说明,则 drop table A 系统会出现错误 ...

  7. Oracle-创建新表,创建备份表,对表中插入多条数据

    一.创建新表 0.基本语法 create table 表名称(id varchar2(50) primary key ,name char(200) not null,phone number(11) ...

  8. 将表A的数据复制到表B,以及关于主表和子表的删除办法

    如果表A的数据结构和表B的数据结构是一样的,字段名字可以不用相同,但是对应的数据类型是一样的 这样的情况下可以用如下的方式实现将表A的数据复制到表B INSERT INTO #TEMP2 SELECT ...

  9. MySQL根据表前缀批量修改、删除表

    注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...

  10. mysql ---复制表结构---创建新表

    1.复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删 ...

随机推荐

  1. Android中TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题

    最近在使用TabHost的时候遇到了一些奇怪的问题,在这里总结分享备忘一下. 首先说一点TabActivity将会被FragmentActivity所替代,但是本文中却是使用的TabActivity. ...

  2. Python Tricks(二十二)—— small tricks

    多次 import import numpy as np, matplotlib.pyplot as plt ndarray 的强制类型转换 v = v.astype(np.int) python 的 ...

  3. https学习笔记

    HTTPS协议 HTTPS可以认为是HTTP + TLS.HTTP协议大家耳熟能详了,目前大部分WEB应用和网站都是使用HTTP协议传输的.TLS是传输层加密协议,它的前身是SSL协议,最早由nets ...

  4. [C#]Windows系统特殊文件夹路径获取

    原文:[C#]Windows系统特殊文件夹路径获取 由于软件开发的需要,近期对Windows特殊文件夹(如桌面,我的文档等)路径的查找方法进行了研究,结果如下. 获取特殊文件夹的方法不止一种,下面列出 ...

  5. 李开复:VC看不上你的五个原因

    [编者按]:此文是李开复先生发表于其LinkedIn主页上的一篇文章,简单列举了五条与VC接触常忽略的经验.如果你是一位正准备和VC谈判取得资金上帮助的创业者,那么应该避免企业家常常犯下的五条错误. ...

  6. 微信小程序知识集锦

    1.自定义属性/获取属性值 自定义属性: <view bindtap='shopPost' data-myid='item.goods_id' ></view> 获取属性: s ...

  7. Git学习笔记(两)

    删除文件 假设需要从Git删除文件,我们必须从删除列表中的跟踪文件(从临时区域中删除).然后提交.可以使用git rm工作订单完成.联合司令部从工作区删除指定的文件.以后就不会出如今未跟踪文件清单中. ...

  8. ubuntu如何修改terminal终端的主机名(修改/etc/hostname文件)

    有时候安装完Ubuntu系统后,打开命令终端,终端显示的主机名格式比较难看,例如 我最近买的国内某云的VPS. xxx@VM-1560-ubuntu$ xxx@VM-1560-ubuntu$ 对于有洁 ...

  9. 隐藏在QRCode二维码背后的秘密

    原文:隐藏在QRCode二维码背后的秘密 隐藏在QRCode二维码背后的秘密,您知道吗? 1.容错级. 二维码的容错级分别为:L,M,Q和H.其中,L最低,H最高.如何从二维码中一眼看出其容错级别呢? ...

  10. BackgroundWorker使用

    using System.ComponentModel; private BackgroundWorker worker;  worker = new BackgroundWorker(); work ...