首页
学习
活动
专区
圈层
工具
发布

sql 子查询(mysql)

子查询 可以分为: 单行单列(就是一个值) 单行多列(就是有一行,这一行有很多不同列数据) 多行单列(同一列不同的数据) 多行多列(可以说就是一张表了吧) 我们先来看单行单列的子查询:...name1和age1所以就是多列了,因为id为主键 ,所以就是一行了 ,如果查询出来 的数据 和之前table1中的name1和age1都没有匹配的话,那么整个子查询查询出来的值都将为空。...多行单列子查询: SELECT * FROM table1 WHERE id IN(SELECT id FROM table2 ) 以上sql命令查询table1的数据,条件为id必须在 SELECT...多行多列子查询: SELECT * FROM table1 WHERE (name1,age1) IN (SELECT name1,age1 FROM table2) 以上命令查询来自table1表的数据...,但是条件为,table1表中的name1和age1两个值必须在 SELECT name1,age1 FROM table2 所查询出来的数据中有匹配。

4.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL 基础--> 子查询

    、或DELETE语句中内部的查询 二、子查询的分类 单行子查询 返回零行或一行 多行子查询 返回一行或多行 多列子查询 返回多列 相关子查询 引用外部SQL语句中的一列或多列 嵌套子查询...FROM table); /* 子查询(内部查询)在执行主查询之前执行一次 然后主查询(外部查询)会使用该子查询的结果 四、子查询的规则 将子查询括在括号中 将子查询放置在比较条件的右侧...子查询中使用了主查询中的某些字段,主查询每扫描一行都要执行一次子查询 */ --查询工资高于同一部门的员工的部门号,姓名,工资 SQL> select deptno,ename,sal 2...除了count(*)外,都会忽略掉空值 */ /* 十、更多*/ Oracle 数据库实例启动关闭过程 Oracle 10g SGA 的自动化管理 使用OEM,SQL*Plus,iSQL*Plus...管理Oracle实例 Oracle实例和Oracle数据库(Oracle体系结构) SQL 基础-->常用函数 SQL基础-->过滤和排序 SQL 基础-->SELECT 查询

    2.9K20

    Oracle多表查询、子查询实战练习

    一、基础练习: 1.查询和scott相同部门的员工姓名ename和雇用日期hiredate SELECT ENAME,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DEPTNO...,部门的人数 思路:1.先查询JOB为CLERK的所有部门编号,将该子查询结果命名为A;2.再从EMP表查询与A查询中部门编号相同的员工所在的部门人数,这一步的查询结果命名为B;3.最后从EMP表、DEPT...表和B查询中进行多表查询获取JOB为CLERK的所有员工的姓名、部门名称和所在部门人数。...如果不使用DISTINCT,查询结果会出现很多一样的重复数据!*/ 分析:为什么说上面的SQL语句不算完美呢?...因为从上图可看出JOB为CLERK,且DEPTNO=20的记录有两条,即分别是第2和第3条查询记录,这就与题目要求的“从事同一种工作但属于不同部门的员工”不一致了,故最理想的查询结果应该如下: 9.

    2.2K10

    子查询与子查询的分类(一)

    在 SQL 中,子查询是一个查询嵌套在另一个查询中的查询,也被称为内部查询。子查询可以用来创建更复杂的查询,从而实现更高级的数据检索和分析。...子查询的分类子查询可以根据其位置和返回结果的数量和数据类型分为以下三种类型:标量子查询:返回一个单一值的查询,通常用于作为 WHERE 子句或 SELECT 子句中的表达式。...first_name, last_name, salaryFROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);在这个例子中,子查询...列子查询:返回一个列值列表的查询,通常用于 IN 或 EXISTS 子句中。...表子查询:返回一个表格作为查询结果的查询,通常用于 FROM 子句中的表达式。

    3.6K50

    子查询与子查询的分类(二)

    使用子查询子查询可以嵌套在 SELECT、FROM、WHERE 和 HAVING 子句中,以实现更复杂的数据检索和分析。...在使用子查询时,需要注意以下几点:子查询必须始终放在括号中;子查询可以是标量、列或表子查询;子查询可以使用运算符、聚合函数和其他 SQL 语句;子查询的结果必须与主查询的数据类型兼容。...以下是一些常见的子查询用法示例:在 WHERE 子句中使用子查询SELECT customer_name, credit_limitFROM customersWHERE customer_id IN...(SELECT customer_id, customer_name FROM customers WHERE country = 'USA') 返回来自美国的客户表的一部分,然后将其与订单表进行连接...,以获取来自美国的客户的订单信息。

    3.2K10

    sql的子连接查询

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...本文链接:https://blog.csdn.net/luo4105/article/details/51397825 一直没有注重于sql这一块,现在的项目有大量的统计,报表,以前都是多表连接或者用...mybatis的延迟加载之类的,这几天心血来潮自己查了一下,发现了sql子查询这个好东西,感觉方便多了,速度也快多了(自我感觉)。...sql的子查询是可以在把数据查出来后在查出一条其他表的关联数据的一项(多项或者多条都会报错), 比如我们要查询用户表(user)并加上一个列(rolename)表示它代表的权限的名字,那么我们可以这么写...roleId=user.roleId) as rolename,'2016-05-13' as nowTime from user 这sql这几天真的写的蛮开心,哈哈

    6K20

    Oracle学习(六):子查询

    主查询和子查询可以不是同一张表,只要子查询返回的结果,主查询可以使用,即可 SQL> --7....强调from后面放置子查询 SQL> --查询员工的姓名和薪水 SQL> select * 2 from (select ename,sal from emp); SQL> --6....主查询和子查询可以不是同一张表,只要子查询返回的结果,主查询可以使用,即可 SQL> --查询部门名称为 SALES的员工信息 SQL> --子查询 SQL> select * 2 from emp...不可以在group by后面放置子查询 SQL> 5. 强调from后面放置子查询 SQL> 6. 主查询和子查询可以不是同一张表,只要子查询返回的结果,主查询可以使用,即可 SQL> 7....主查询和子查询可以不是同一张表,只要子查询返回的结果,主查询可以使用,即可 SQL> --查询部门名称为 SALES的员工信息 SQL> select * 2 from emp 3 where

    1.2K80

    使用联接和子查询来查询数据

    --Chapter 3 使用联接和子查询来查询数据 --内容提要 go /* (一)、使用联接查询数据 1. 内联接 2. 外联接 3. 交叉联接 4....自联接 */ go /* (二)、使用子查询查询数据 1. 使用比较运算符,IN和EXISTS关键字 2. 使用修改过的比较运算符 3. 使用聚合函数 4....=b.EmployeeID --根据其主管的员工编号找到对应的职位 go ---------------------- (二)、使用子查询查询数据----------------------------...--子查询:将一个select的查询结果作为另外一个select查询的输入/条件,查询里面的查询 --1....交集,并集,差集 --操作两个select语句查询的结果 /* 前提条件 (1)两个结果集的列的数量和顺序要一致 (2)所有查询中的列的数据类型必须兼容 如char(10)和varchar

    3.7K60

    Oracle函数学习(单表查询和子查询)

    –单表查询: –当需要的数据在一张表中,考虑使用单表查询 –多表联合查询: –当需要查询的数据分布在多张表中,考虑使用多表联合 –子查询学习: –使用时机:当查询的筛选条件不明确时,考虑使用子查询...emp where ename =‘CLARK’) –查询工资高于平均工资的员工的名字和工资 select ename,sal from emp where sal>(select avg(sal...) from emp ) –查询和soctt属于同一部门且工资比他低的员工资料 select * from emp where deptno=(select deptno from emp where...sal=(select max(sal) from emp) –查询职务和scott相同,雇佣时间早的员工信息 select * from emp where job=(select job from...emp where ename=‘SCOTT’) and hiredate <(select hiredate from emp where ename=‘SCOTT’) –查询工资比scott高或者雇佣时间早的员工编号和名字

    1.4K20

    Hive 子查询

    必须为子查询指定名称,因为FROM子句中的每个表都必须具有名称。子查询 SELECT 列表中的列必须具有独一无二的名称。子查询 SELECT 列表中的列可以在外部查询中使用,就像使用表中的列一样。...子查询也可以是带 UNION 的查询表达式。Hive支持任意级别的子查询。 在Hive 0.13.0及更高版本(HIVE-6519)中可选关键字 AS 可以包含的子查询名称之前。...WHERE中的子查询 从Hive 0.13开始,WHERE子句中支持某些类型的子查询。...可以将这些子查询的结果视为 IN 和 NOT IN 语句中的常量(我们也称这些子查询为不相关子查询,因为子查询不引用父查询中的列)。...IN/NOT IN 子查询只能选择一列。 EXISTS/NOT EXISTS 必须有一个或多个相关谓词。 对父查询的引用仅在子查询的WHERE子句中支持。

    8.2K41

    MySQL子查询

    在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。...当获得一个查询的答案需要多个步骤的操作,首先必须创建一个查询来确定用户不知道但包含在数据库中的值,将一个查询块嵌套在另一个查询块的WHERE字句或HAVING短语的条件中查询块称为子查询或内层查询。...一、子查询概述 1.1、什么是子查询 子查询是一种常用计算机语言sql中select语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。...(0.03 秒) 1.2、子查询特点 一个查询的结果做为另一个查询的条件 有查询的嵌套,内部的查询称为子查询 子查询要使用括号 1.3、子查询结果的三种情况 单行单列 多行单列 多行多列 二、单行单列查询...(子查询); 案例: 查询工资大于 5000 的员工,来自于哪些部门的名字 分析: 先找出工资大于5000的员工的部门ID,通过部门ID查找对应的部门名字 mysql> select dept_id

    7.4K11

    MySQL(八)子查询和分组查询

    格式化SQL:包含子查询的select语句一般相较来说阅读和调试更为不方便,特别是它比较复杂的情况下,因此把子查询分解为多行并且适当缩进,能极大的简化子查询的使用。...3列:user_name,user_id和orders,orders是一个计算字段,由圆括号内的子查询建立,它对检索出的每个用户执行一次, 子查询中where子句它使用了完全限定表名,它告诉SQL比较orders...相关子查询(correlated subquery):涉及外部查询的子查询(任何时候只要列名可能存在多叉性,就必须使用这种语法[表名和列名有一个句点分隔])。...PS:使用子查询建立查询的最可靠方法是逐渐进行(首先建立最内层的查询,确认后用硬编码数据建立外层查询,由内到外) 二、组合查询 MySQL允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回...以下两种基本情况,需要使用组合查询: ①在单个查询中从不同表返回类似结构的数据; ②对单个表执行多个查询,按单个查询返回数据; 1、union union可将多条select语句的结果组合成单个结果集,

    5.7K20

    MySQL 子查询 嵌套查询

    MySQL 子查询 嵌套查询 一、带IN关键字的子查询 二、带EXISTS关键字的查询 三、带ANY、SOME 关键字的子查询 四、带ALL 关键字的查询 自言自语 一、带IN关键字的子查询 使用IN...关键字进行子查询的时候,内层查询语句仅仅返回一个数据列。...语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 [NOT] IN (SELECT 语句); 二、带EXISTS关键字的查询 意思就是内层的select查到了(至少查到了一行)才进行查询...语法格式: SELECT 查询字段 FROM 表名 WHERE [NOT] EXISTS (SELECT 语句); 三、带ANY、SOME 关键字的子查询 ANY 、SOME 是表示满足其中任一条件,就允许创建一个表达式对子查询的返回值列表进行比较...只要满足内层子查询中的任何一个比较条件,就返回一个结果作为外层查询的条件。 (满足任意一个) 语法格式: SELECT 查询字段 FROM 表名 WHERE 字段名 比较运算符(>,<..)

    17.5K40

    子查询(2)

    相关子查询 相关子查询执行流程 如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为 关联子查询...说明:子查询中使用主查询中的列  题目:查询员工中工资大于本部门平均工资的员工的last_name,salary和其department_id 方式一:相关子查询  在 FROM 中使用子查询  SELECT...`salary`; from型的子查询:子查询是作为from的一部分,子查询要用()引起来,并且要给这个子查询取别 名, 把它当成一张“临时的虚拟的表”来使用。 ...`department_id` ); EXISTS 与 NOT EXISTS关键字 关联子查询通常也会和 EXISTS操作符一起来使用,用来检查在子查询中是否存在满足条件的行。...,而自连接是通过已知的自身数据表 进行条件判断,因此在大部分 DBMS 中都对自连接处理进行了优化。

    1.6K20

    【mysql】子查询

    SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果,然后与这个数据结果(可能是某个标量,也可能是某个集合)进行比较...子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,那么这样的子查询叫做不相关子查询。...,和子查询返回的所有值比较 SOME 实际上是ANY的别名,作用相同,一般常使用ANY 体会 ANY 和 ALL 的区别 3.2 代码示例 题目:返回其它job_id...[在这里插入图片描述] 说明:子查询中使用主查询中的列 4.2 代码示例 题目:查询员工中工资大于本部门平均工资的员工的last_name,salary和其department_id 方式一:相关子查询...可以这样理解:子查询实际上是通过未知表进行查询后的条件判断,而自连接是通过已知的自身数据表进行条件判断,因此在大部分 DBMS 中都对自连接处理进行了优化。

    5.1K30

    MySQL 子查询

    事实上,正是子查询的创新让人们产生了将早期 SQL 称为“结构化查询语言”的最初想法。 3.分类 根据子查询的结果可以将其分为多种类型。...当 WHERE 条件中的子查询返回多行数据时,不能再使用普通的比较运算符,因为它们不支持单个值和多个值的比较;如果想要判断某个字段是否在子查询返回的数据列表中,可以将子查询与 IN、ALL、ANY/SOME...3.4 表子查询 当子查询返回的结果包含多行多列数据时,称为表子查询。表子查询通常用于 FROM 子句或者查询条件中。...该语句执行时,外查询先检索出所有的部门数据,针对每条记录再将 d.id 传递给子查询,子查询返回每个部门的员工数量。...7.附录 本文示例用到的员工表(employee)和部门表(deparment)建表与数据如下。

    3.9K10
    领券