MySQL之单行子查询,多行子查询

article/2025/9/27 22:08:59

单行子查询

只返回一行结果的子查询,称为单行子查询。对于单行子查询的结果我们可以使用单行操作符来构造外查询条件,如 >、<、= 等等。

废话少说上代码

select * from city
where population >
(select population from city where name='tokyo');

多行子查询

返回多行结果的子查询,称为多行子查询。对于多行子查询的结果我们可以使用多行操作符来进一步构造查询条件,如 in、any、all。

简单说一下这三个多行操作符的含义:

  • in:等于多行子查询返回的结果中的任意一个即可;
  • any:和多行子查询返回的某一个值进行比较即可;
  • all:和多行子查询返回的所有值进行比较;

下面就这三个多行子查询操作运算符进行举例:

  1. 查询所有和国家 ‘ABW’ 有共同语言的国家

    实现的 SQL 语句如下:

    SELECT * FROM countrylanguage cou 
    WHERE cou.`Language` in (SELECT `Language` FROM countrylanguage couWHERE cou.CountryCode='abw')

  2. 结果解析:子查询首先会查出 ABW 这个国家有 4 个语言,然后利用 in 运算符把使用 4 种语言之一的国家编码显示出来,最后利用 distinct 去掉重复行。
  3. 结果解析:子查询首先会查出 ABW 这个国家有 4 个语言,然后利用 in 运算符把使用 4 种语言之一的国家编码显示出来,最后利用 distinct 去掉重复行。
  4. 查询人口数比 TTO 这个国家下任意城市人口数小的城市信息,换句话说,对某一城市 X,只要 TTO 下任一城市人口数比 X 人口数大,那么 X 就进入查询结果。实现的 SQL 语句如下:
  5. 
    select * from city
    where population < any (select population from city where countrycode = 'TTO')
    and countrycode<> 'TTO';

     查询人口数量比 TTO 这个国家所有城市人口数量都小的城市信息,换句话说,人口数小于 TTO 下城市最小人口数的城市会进入查询结果。实现的 SQL 语句如下:

  6. 
    select * from city WHERE Population < ALL (SELECT Population FROM city WHERE CountryCode = 'TTO')

    结果解析:使用 all 操作运算符意味着要和子查询所有结果比较(而不是任一),所以结果数据量比使用 any 要少。


http://chatgpt.dhexx.cn/article/Fku3N6ls.shtml

相关文章

子查询:单行子查询,多行子查询,多列子查询

#子查询 子查询使用规则&#xff1a; 子查询放在圆括号中子查询放在比较条件右边&#xff08;非强制&#xff09;子查询中不需要ORDER BY 子句在单行子查询中使用单行运算符&#xff0c;在多行子查询中用多行运算符。 单行运算符&#xff1a;子查询结果只有一个&#xff1a;…

ora-01427批量更新表的时候提示单行子查询返回多个行

这是刚开始的更新语句&#xff1a;根据AMCARD表的ACCTCOMPID和ACCTDEPID字段关联LSBMZD表的LSBMZD_DWBH和LSBMZD_BMBH,得到相对于的LSBMZD_ID&#xff0c;然后根据这个LSBMZD_ID列匹配HRORGINFO表的MAPPINGORG字段&#xff0c;最终得到HRORGINFO表的NM字段&#xff0c;将AMCARD…

update时 单行子查询返回多个行 SQL 错误 [1427] 处理方案

我遇到此错误是在多表关联update的 UPDATE EDASYS.CELL_COMPONENT_T A SET A.ARRAY_GLASS_ID (SELECT M.ARRAY_GLASS_ID FROM EDASYS.CELL_ARRAY_CF_MAPPING_T M WHERE M.CF_GLASS_ID A.COMPONENT_ID AND rownum < 2) WHERE EXISTS (SELECT 1 FROM EDASYS.CELL_ARR…

13.子查询返回多行多列的数据

假设有下面两张表: 部门表dept 雇员表emp 列出公司各个部门的经理的姓名、薪金、部门名称、部门人数、部门平均工资。 步骤1&#xff1a;查找每个部门经理的姓名和薪金。 select ename,sal from emp where jobMANAGER; 步骤2&#xff1a;连接dept表&#xff0c;查询部门名称。…

oracle单行子查询返回多个行 order by,请教单行子查询返回多个行的问题

原帖由 风铃中の鬼 于 2009-9-23 11:10 发表 写问题的时候突然蹦出来个工作..拖延了下时间..具体问题在上面3楼 我当初提供给你的语句没有问题&#xff01; 测试如下&#xff01; SQL> select * from tab_temp; TAB_ID PRO_ID NET_ID ---------- ---------- ------…

oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助

with order_base as --获取订单基础情况 ( select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_time_t, ou.part_number_s, I032ZZ01 pline_name_s from order_uv ou left join at_as_om_orderdispatchstatus ood on ou.order_key ood.order_54 union all sel…

【转】ORA-01427: 单行子查询返回多个行,连表查询去重

转自&#xff1a;http://blog.chinaunix.net/uid-23 实例1 有人问题我一个问题&#xff0c;情况如下&#xff1a;他要用根据divide_act_channel_day的new_amount字段去更新divide_stat的new_amount字段。两张表关联的条件:daylog_time,channelchannel--SQL如下&#xff1a;up…

关于子查询报错返回多行数据

项目场景&#xff1a; 子查询报错返回多行数据 问题描述 在查询数据时有两个功能都在操作同一个表,导致子查询查询数据是报错子查询返回多调数据 原因分析&#xff1a; 我遇到的问题所分析是因为两个功能操作同一个表,将查询条件字段改变了,经查询是该字段本来一对一查询更改…

ORA_01427 单行子查询返回多个行

同事反馈线上生产环境在统计报表数据时报错&#xff0c;测试环境没问题&#xff0c;对比代码相同的情况下&#xff0c;将异常锁定在数据问题上面&#xff0c;于是申请了服务器日志查询&#xff0c;发现了ORA_01427&#xff08;单行子查询返回多个行&#xff09;的报错&#xff…

SQL学习之子查询,基于Oracle下的HR用户(四)

六、 子查询 1 子查询介绍 1.1 什么是子查询 子查询是一个 SELECT 语句&#xff0c;它是嵌在另一个 SELECT 语句中的子句。 可以用组合两个查询的方法解决这个问题&#xff0c;放置一个查询到另一个查询中。内查询或子查询返回一个值给外查询或主查询。使用一个子查询相当于执行…

ORA-01427:单行子查询返回多个行

今天sql进行查询时&#xff0c;执行sql语句弹出单行子查询返回多个行的错误提示 经过整改解决了这个问题 1.错误产生原因 原sql语句(为方便理解进行简化)&#xff1a; select * from 表a a where a.name (select b.name from 表b b where b.name 张三 ) 原本想通过&#…

lwl,lwr

lwl,lwr,swl,swr中的指令后缀r(right),l(left)都是相对寄存器而言&#xff0c;load操作是把取到的部分数据&#xff0c;置入寄存器的left或者right&#xff0c;store操作时将寄存器中的数据的 left或者right部分写入目标地址。无论时大端和小端寄存器的格式都是固定的&#xff…

1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授

程序示例–局部加权线性回归 现在&#xff0c;我们在回归中又添加了 JLwr() 方法用于计算预测代价&#xff0c;以及 lwr() 方法用于完成局部加权线性回归&#xff1a; # coding: utf-8 # linear_regression/regression.py# ...def JLwr(theta, X, y, x, c):"""…

LWE和RLWE问题学习

LWE概念 又称误差还原&#xff0c;容错学习问题&#xff0c;即已知一个矩阵 A A A以及一个向量&#xff0c;求解 b ^ A x e \hat{b}A xe b^Axe 这里 e e e是一个固定数值范围内随机采集的一个随机噪音向量&#xff0c;所以这个问题就转化为通过 A A A和 b ^ \hat{b} b^来还…

同态加密简介

同态加密概述 基本概念 同态加密&#xff08;Homomorphic Encryption,HE&#xff09;指将原始数据经过同态加密后&#xff0c;对密文进行特定的运算&#xff0c;得到的密文计算结果在进行同态解密后的得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 历史与…

机器学习笔记(一)-局部加权回归(Locally weighted regression)LWR

在网上通过看斯坦福大学的机器学习课程&#xff0c;觉得讲的非常好。同时&#xff0c;为了加强自己的记忆&#xff0c;决定将自己学到的东西和一些理解记录下来&#xff0c;希望有所收获。废话不多说&#xff0c;直接开始笔记&#xff1a; 局部加权回归&#xff08;locally we…

ROS中7自由度机械臂自定义发布订阅节点

本篇用来记录一次作业的学习例程&#xff0c;错误之处敬请谅解&#xff0c;后续修改 作业要求&#xff1a; 写两个ROS节点&#xff0c;一个节点发布连续变化&#xff08;可以按sin曲线变化&#xff09;的7自由度的关节角信息&#xff1b;另一个节点订阅第一个节点发布的关节角…

【自己动手写CPU】加载存储指令的实现

目标 修改之前一直做测试的sopc&#xff0c;为其添加数据RAM&#xff0c;测试一般加载指令的实现&#xff0c;加入特殊加载存储指令。 探讨由于加载指令引起的load相关问题&#xff0c;给出OpenMIPS的解决方法&#xff0c;验证解决效果。 加载存储指令说明 31-2625-2120-161…

自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)

将陆续上传新书《自己动手写CPU》。今天是第38篇&#xff0c;我尽量每周四篇&#xff0c;可是近期已经非常久没有实现这个目标了。一直都有事&#xff0c;不好意思哈。 开展晒书评送书活动&#xff0c;在亚马逊、京东、当当三大图书站点上&#xff0c;发表《自己动手写CPU》书评…

LWR--local weighted regression

转自http://www.cnblogs.com/jeromeblog/p/3396486.html 简单回顾一下线性回归。我们使用了如下变量&#xff1a; x —输入变量/特征&#xff1b; y —目标变量&#xff1b; (x,y) —单个训练样本&#xff1b; m —训练集中的样本数目&#xff1b; n —特征维度&#xff1b; (x…