mysql 标量子查询和非法子查询

#where或having后面:
#标量子查询(单行子查询)
#列子查询(多行子查询)
#行子查询(多行多列)

特点:子查询放在小括号内,一般放在条件的右侧,标量子查询一般配备单行操作符使用
单行操作符:<> >= <= < >
列子查询:一般搭配着多行操作符使用
多行操作符:in、any、some、all

#标量子查询
#案例:谁的工资比ABEL高的员工信息

SELECT *
FROM  employees
WHERE salary>(

    SELECT salary
    FROM employees
    WHERE last_name=‘Abel‘
);

#案例:返回job_id与141号员工相同,salary比143号员工多的员工的姓名、job_id和工资

SELECT
    last_name,job_id,salary
FROM employees
WHERE job_id=(
    SELECT job_id
    FROM employees
    WHERE employee_id=141
)
AND salary>(
    SELECT salary
    FROM employees
    WHERE employee_id=143
);

#案例:返回工资最少的员工的last_name、job_id和salary

SELECT  last_name,job_id,salary
FROM employees
WHERE   salary=(
    SELECT MIN(salary)
    FROM employees
);

#案例:查询最低工资大于50号部门最低工资的部门id和其最低工资

SELECT department_id,MIN(salary)
FROM employees
GROUP BY department_id
HAVING  MIN(salary)>(
    SELECT MIN(salary)
    FROM employees
    WHERE department_id=50
);

#非法使用标量子查询

SELECT department_id,MIN(salary)
FROM employees
GROUP BY department_id
HAVING  MIN(salary)>(
    SELECT salary   #单行操作符只能搭配标量子查询,而这是列子查询
    FROM employees
    WHERE department_id=50
);

原文地址:https://blog.51cto.com/14437184/2438098

时间: 2024-11-06 17:21:11

mysql 标量子查询和非法子查询的相关文章

mysql的缓冲查询和非缓冲查询

最近在开发一个PHP程序时遇到了下面的错误: PHP Fatal error: Allowed memory size of 268 435 456 bytes exhausted 错误信息显示允许的最大内存已经耗尽.遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个foreach循环语句在一个有4万条记录的表里全表搜索具有特定特征的数据,也就是说,一次要把4万条数据取出,然后逐条检查每天数据.可想而知,4万条数据全部加载到内存中,内存不爆才怪. 毕竟编程这么

Solr4.8.0源码分析(6)之非排序查询

Solr4.8.0源码分析(6)之非排序查询 上篇文章简单介绍了Solr的查询流程,本文开始将详细介绍下查询的细节.查询主要分为排序查询和非排序查询,由于两者走的是两个分支,所以本文先介绍下非排序的查询. 查询的流程主要在SolrIndexSearch.getDocListC(QueryResult qr, QueryCommand cmd),顾名思义该函数对queryResultCache进行处理,并根据查询条件选择进入排序查询还是非排序查询. 1  /** 2 * getDocList ve

MySQL FROM 子查询

FROM 子句中的子查询 MySQL FROM 子查询是指 FROM 的子句作为子查询语句,主查询再到子查询结果中获取需要的数据.FROM 子查询语法如下: SELECT ... FROM (subquery) AS name ... 子查询会生成一个临时表,由于 FROM 子句中的每个表必须有一个名称,因此 AS name 是必须的.FROM 子查询也称为衍生数据表子查询. FROM 子查询实例 table1: s1 s2 1 5 2 12 3 20 FROM 子查询 SQL 如下: SELE

MySql基本查询、连接查询、子查询、正则表达查询讲解

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括.1.查询语句的基本语法2.在单表上查询数据3.使用聚合函数查询数据4.多表上联合查询5.子查询6.合并查询结果7.为表和字段取别名8.使用正则

MySql基本查询、连接查询、子查询、正则表达查询解说

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 查询数据指从数据库中获取所须要的数据.查询数据是数据库操作中最经常使用,也是最重要的操作.用户能够依据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,能够获得不同的数据. MySQL中是使用SELECT语句来查询数据的. 在这一章中将解说的内容包括.1.查询语句的基本的语法2.在单表上查询数据3.使用聚合函数查询数据4.多表上联合查询5.子查询6.合并查询结果7.为表和字段取别名8

MySQL数据库 多表查询 交叉连接 自然连接 内连接 自连接 外连接 子查询 多表查询练习 单表查询练习 &#109806;

原文: http://blog.gqylpy.com/gqy/466 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

彻底搞懂oracle的标量子查询

oracle标量子查询和自定义函数有时用起来比较方便,而且开发人员也经常使用,数据量小还无所谓,数据量大,往往存在性能问题. 以下测试帮助大家彻底搞懂标量子查询. SQL> create table a (id int,name varchar2(10)); Table created. SQL> create table b (id int,name varchar2(10)); Table created. SQL> insert into a values (1,'a1'); 1

MySQL 表子查询

MySQL 表子查询 表子查询是指子查询返回的结果集是 N 行 N 列的一个表数据. MySQL 表子查询实例 下面是用于例子的两张原始数据表: article 表: aid title content uid 1 文章1 文章1正文内容... 1 2 文章2 文章2正文内容... 1 3 文章3 文章3正文内容... 2 4 文章4 文章4正文内容... 3 blog 表: bid title content uid 1 日志1 日志1正文内容... 1 2 文章2 文章2正文内容... 1

优化有标量子查询的SQL

数据库环境:SQL SERVER 2008R2 今天在数据库中抓出一条比较耗费资源的SQL,只返回904条数据,居然跑了40多分钟.SQL及对应的数据量如下图: SELECT saft04.cur_year , LEFT(saft04.dept_id, 4) sdept_id , saft04.vdept_id , saft04.dept_id , saft04.fee_id , saft04.vitem_id , ISNULL(saft04.fee_amt, 0) AS saft04_fee_