sql关联查询—将一个表的查询结果作为新表进行查询操作
例题:# 各个部门中 最高工资中最低的那个部门的 最低工资是多少?
先考虑取得各个部门最高工资
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关联查询—将一个表的查询结果作为新表进行查询操作的更多相关文章
- C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高. 包装了一个简单的sql ...
- SELECT INTO - 从一个查询的结果中创建一个新表
SYNOPSIS SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [ ...
- SQL Server 复制表结构以及数据,去除表中重复字段
--复制另一个数据库中的某张表的结构及数据--select * from Test.dbo.TestTable(查询表中所有数据) --into [表名] 插入当前数据库新表,如果没有该表就创建 se ...
- MySQL用sql复制表数据到新表的方法
用sqlyog无法直接复制出一个不同表名的表来,只能copy到其他库上同名的表. 在MySQL数据库中,应该如何用sql将表数据复制到新表中呢? 本人通过试验测试成功了,而且相当简单易懂,速度也非常快 ...
- sql创建备份表和复制数据到备份表
1.复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable; ...
- DROP TABLE ** CASCADE CONSTRAINTS PURGE删除表的时候级联删除从表外键
1.关于 cascade constraints 假设A为主表(既含有某一主键的表),B为从表(即引用了A的主键作为外键). 则当删除A表时,如不特殊说明,则 drop table A 系统会出现错误 ...
- Oracle-创建新表,创建备份表,对表中插入多条数据
一.创建新表 0.基本语法 create table 表名称(id varchar2(50) primary key ,name char(200) not null,phone number(11) ...
- 将表A的数据复制到表B,以及关于主表和子表的删除办法
如果表A的数据结构和表B的数据结构是一样的,字段名字可以不用相同,但是对应的数据类型是一样的 这样的情况下可以用如下的方式实现将表A的数据复制到表B INSERT INTO #TEMP2 SELECT ...
- MySQL根据表前缀批量修改、删除表
注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...
- mysql ---复制表结构---创建新表
1.复制表结构及数据到新表CREATE TABLE 新表SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删 ...
随机推荐
- 常见数据结构与算法的 Python 实现
1. 排序 快速排序(quick sort) 形式一:借助 partition 辅助函数 def partition(seq): pivot, seq = seq[0], seq[1:] low = ...
- 解决mysql连接异常—-com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception
DBCP连接池连接MySql数据库时,一奇葩数据库设置为30秒内无请求自动断开.超时后链接无法关闭,活动链接数飞奔,最后挂掉. 网上找了一圈,一般是这三种,方法一pass,方法二测试无效可能设置错了吧 ...
- Spring boot参考指南
介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://ww ...
- jQuery整体架构
(function(global, factory) { factory(global); }(typeof window !== "undefined" ? window : t ...
- Store-exclusive instruction conflict resolution
A data processing system includes a plurality of transaction masters (4, 6, 8, 10) each with an asso ...
- 推断(inference)、贝叶斯规则(Bayes's rule)与导出分布(derived distribution)
1. 建模 对原始信号 X 进行观测,观测可以抽象为(离散:PY|X(y|x), 连续:fY|X(y|x)),物理世界噪声的存在,将导致观测到的 X 出现一定的噪声,记为 Y: X⇒fY|X(y|x) ...
- c语言学习笔记(7)——数组
一.为什么需要数组1.为了解决大量同类型的数据存储和使用2.为了模拟现实世界二.数组的分类1.一维数组为n个变量连续分配存储空间所有的变量数据类型必须相同所有变量所占的字节大小必须相等初始化:完全初始 ...
- UVA 10641 - Barisal Stadium(DP + 几何)
题目链接:10641 - Barisal Stadium 题意:逆时针给定n个点,在给m个灯,每一个灯有一个花费,要求最小花费使得全部边能被灯照到 思路:用向量叉积推断向量的顺逆时针关系,从而预处理出 ...
- WPF-Button|IsCancel&&IsDefault
原文:WPF-Button|IsCancel&&IsDefault Button个别属性 <Button ToolTip="ESC" IsDefault=&q ...
- android自定义View绘制天气温度曲线
原文:android自定义View绘制天气温度曲线 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012942410/article/detail ...