Mysql子查询和联合(UNION)查询详解

2023-11-07

原文:http://www.111cn.net/database/mysql/47438.htm

在mysql中UNION查询是可以联合多个表,union只是mysql中联合查询的一个小点了,下面我来给大家介绍各种mysql中联合查询的语句,大家可参考参考。

查询:
 在select查询中,又嵌套了一个select查询。一个是外层查询,另一个是内层查询。
Where子查询

就是在where查询语句有一个select语句,把内层查询的结果当做外层查询的条件。

From子查询

在from 查询语句中,有一个select语句,把内层查询结果作为一张临时表,供外层再一次查询。

区别:

对于不是唯一取值的列,使用where子查可能会出现不正确的结果。如果用from,有分组的情况下,我们要通过排序把需要的记录放在第一的位置上。

Exists

#查询有商品的栏目

 代码如下 复制代码
select cat_id,cat_name from category where cat_id 
in
(select distinct cat_id from goods);

 
我们还可以通过Exists 子查询:

 代码如下 复制代码
select cat_id,cat_name from category where exists 
 (select * from goods where goods.cat_id = category.cat_id);

 
执行过程:

它和前面我们讲的where、from子查询不同,where和from子查询只执行一次,而exists子查询要查询多次(有多少行记录就执行多少次)。


SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

SQL UNION 语法

 代码如下 复制代码

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注释:默认地,UNION 操作符选取不同的值,即UNION是去了重的。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法

 代码如下 复制代码

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。union只是将两个结果联结起来一起显示,并不是联结两个表


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql子查询和联合(UNION)查询详解 的相关文章

  • oracle 数据透视表中的列

    示例选择 select from select 1 cnt 2 sm 55 name 12 month 2011 year 12 2011 mnth txt from dual union all select 1 cnt 2 sm 54
  • 查找一列中具有相同值而另一列中具有其他值的行?

    我有一个 PostgreSQL 数据库 将用户存储在users他们参与的表格和对话conversation桌子 由于每个用户可以参与多个对话 并且每个对话可以涉及多个用户 因此我有一个conversation user链接表来跟踪哪些用户正
  • Spring Boot如何加入自定义查询

    我需要创建一个端点 该端点按州返回人口普查数据以及城市列表 我目前使用两个端点来获取此数据 目前回应 自定义查询一 censusByState id 1 code 11 name Rond nia statePopulation 18152
  • Sql 查询抛出标识符太长。最大长度为 128

    我正在处理一个简单的更新查询 在执行查询时看到以下错误 我非常清楚 这根本不应该是一个长度问题 可能是什么问题 Error 以identifier开头的标识符太长 最大长度为 128 我的查询 update dbo DataSettings
  • 通过“SELECT”命令选择每组的前两条记录的最佳方法是什么?

    例如我有下表 id group data 1 1 aaa 2 1 aaa 3 2 aaa 4 2 aaa 5 2 aaa 6 3 aaa 7 3 aaa 8 3 aaa 通过 SELECT 命令选择每组的前两条记录的最佳方法是什么 如果没有
  • 如何在 where 子句中使用别名? [复制]

    这个问题在这里已经有答案了 可能的重复 在 WHERE 子句中引用列别名 https stackoverflow com questions 8370114 referring to a column alias in a where cl
  • 使用 SQLite 创建列表树

    我正在尝试使用 PHP 和 SQLite 表设置创建一个分层列表 如下所示 itemid parentid name 1 null Item1 2 null Item2 3 1 Item3 4 1 Item4 5 2 Item5
  • 删除 DB 但不删除 *.mdf / *.ldf

    我正在尝试自动化分离和删除数据库的过程 通过 VBS objshell run 如果我手动使用 SSMS 分离和删除我可以将数据库文件复制到另一个位置 但是如果我使用 sqlcmd U sa P MyPassword S local Q A
  • SQL:使用相等的键和最近的键进行连接(类似于 Pandas 的合并)

    例如 我有2个这样的表 对于表 1 中的每一行 我想获取该行 same customer id and nearest date 就我而言 table2 date lt table1 date 结果应该是这样的 我怎样才能在 SQL 中做到
  • OVER ORDER BY 中的多个列

    有没有办法在 OVER ORDER BY 子句中指定多个列 SELECT ROW NUMBER OVER ORDER BY A Col1 AS ID FROM MyTable A 上面的方法工作正常 但尝试添加第二列不起作用 SELECT
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • MS-Access 查询中的语法错误(缺少运算符)

    以下查询给了我 missing operator 语法错误 所需的输出是表中数据的组合 dbo tbl 和意见 vw 我用过的所有钥匙都存在 有任何想法吗 SELECT dbo tbl BOD fpartno AS PartNumber d
  • 如何在一列中存储数组或多个值

    运行 Postgres 7 4 是的 我们正在升级 我需要将 1 到 100 个选定项目存储到数据库的一个字段中 98 的情况下 只会输入 1 个项目 而 2 的情况下 如果是这样的话 会输入多个项目 这些项目只不过是文本描述 截至目前 长
  • 游标与更新

    一家公司使用 SQL Server 数据库来存储有关其客户及其业务交易的信息 您所在的城市引入了新的区号 对于前缀小于 500 的电话号码 区号 111 保持不变 前缀为 500 及以上的号码将分配区号 222 客户表中电话列中的所有电话号
  • 使用 SqlBulkCopy 和 F# 在 SQL 中导出矩阵

    我想将大量数据从 F 传输到 SQL 表 基本上我的 F 代码创建了一个三列矩阵 UserID ProductID and price 和N行 我想将其 复制 粘贴 到数据库中 我尝试了多种选择 但最终 从 F 传输数据非常慢 10000
  • 关系数据库和图数据库的比较

    有人可以向我解释一下 MySQL 等关系数据库与 Neo4j 等图形数据库相比的优缺点吗 在 SQL 中 您有多个表 它们之间有不同的 id 链接 然后你必须加入来连接表 从新手的角度来看 为什么要将数据库设计为需要联接 而不是像图形数据库
  • 从Oracle表中删除重复行

    我正在 Oracle 中测试某些内容并使用一些示例数据填充表 但在此过程中我不小心加载了重复记录 因此现在我无法使用某些列创建主键 如何删除所有重复行并只保留其中一行 Use the rowid伪列 DELETE FROM your tab
  • 将两个sql查询合并为一个查询

    如何组合以下 2 个查询以便获得两列 PAYMODE 和付款类型 两个查询都很相似 并且针对同一个表 将两个 sql 查询合并为一个查询 这样我就不需要执行两个单独的查询 SELECT ETBL DESC TXT as PAYMODE FR
  • 产品和变体 - 设计数据库的最佳方法

    描述 商店可以有产品 鞋子 T 恤等 每个产品可以有许多变体 每个变体可以有不同的价格和库存 例如T 恤有不同的颜色和尺寸 颜色 蓝色 尺寸 L 价格 10 美元 库存 5 颜色 蓝色 尺寸 XL 价格 10 美元 库存 10 颜色 白色
  • 数据库“key/ID”设计思想、代理键、主键等

    因此 我最近看到多次提到代理键 但我不太确定它是什么以及它与主键有何不同 我总是假设 ID 是表中的主键 如下所示 Users ID Guid FirstName Text LastName Text SSN Int 然而 维基百科将代理键

随机推荐

  • Kendo UI开发教程(19): Kendo MVVM 数据绑定(八) Style

    Style绑定可以通过ViewModel绑定到DOM元素CSS风格属性 例如 1
  • 免费云服务器

    三丰云 免费虚拟主机 免费云服务器 https www sanfengyun com 一个良心服务器 可以通过活动 免费使用 特别适合大学生或者想尝试一下后端学习的朋友 今天我就分享一下使用这个服务器的感受 首先我选着配置了 CentOS
  • 51单片机播放音乐(二):DA转换播放任意波形

    51单片机播放音乐 二 DA转换播放任意波形 原理 DA转换器 仿真电路图 音频文件转成C语言数组代码 单片机代码 仿真输出波形 本文完整源码 用数字信号带动蜂鸣器同一时间只能发出一种频率的声音 也没有和弦 会比较难听 而我们听到的音乐可以
  • PNG透明窗体全攻略(控件不透明)vc++程序指导

    这两天在研究透明窗体 总算略有小成 网上大部分文章都是介绍到把窗体弄透明就没有下文 其实窗体透明并不难 难就难在透明的窗体上还要放控件 今 天我就把窗体透明一直到控件不透明怎么制作一块给写了吧 先截张图诱惑下你们 如果你没兴趣就没必要再看下
  • stm32 使用keil无实物(软件)仿真,虚拟串口通讯

    准备 1 keil 2 vspd虚拟串口 3 sscom串口助手 4 CubeMX 哪里报错no read permission 把哪里map一下 map 0x40000000 0x400077FF read write APB1 map
  • Cocos2d摄像机详解

    Cocos2d摄像机详解 摄像机的作用 在3D系统中都会有一个摄像机的概念 物体在显示之前需要先将物体的坐标转换到视角坐标 也就是摄像机坐标 然后再投影 最后还需对投影画面进行缩放到视口显示的大小 Coscos2d x 3 x支持3D的 所
  • 接口报错500是什么意思_http500什么意思

    展开全部 http500指的是内部服务器错误 说明IIS服务器无法解析e68a84e8a2ad3231313335323631343130323136353331333433623161ASP代码 1 出现http500代码的情况 当访问网
  • 在js文件中引入(调用)另一个js文件的三种方法

    方法一 在调用文件的顶部加入下例代码 function addScript url document write 注 有时你引用的文件还可能需要引用其他的js 我们需要将需要的那个js文件也以同样的方法引用进来 方法二 在js中写如下代码
  • 最好的6个Go语言Web框架

    原文 Top 6 web frameworks for Go as of 2017 作者 Edward Marinescu 译者 roy 译者注 本文介绍截至目前 2017年 最好的6个Go语言Web框架 以下为译文 GO 语言爱好者的最佳
  • 华为OD机试 - 恢复数字序列(Java)

    题目描述 对于一个连续正整数组成的序列 可以将其拼接成一个字符串 再将字符串里的部分字符打乱顺序 如序列8 9 10 11 12 拼接成的字符串为89101112 打乱一部分字符后得到90811211 原来的正整数10就被拆成了0和1 现给
  • 【JAVA】log4j.xml详解

    Appender Appender 日志输出器 配置日志的输出级别 输出位置等 包括以下几类 ConsoleAppender 日志输出到控制台 FileAppender 输出到文件 RollingFileAppender 输出到文件 文件达
  • react:重置清除数据的方法

    描述如下 1 页面进来没有数据 只有输入条件的情况下 才能查询数据 2 查询条件有重置功能 问题 重置功能如何操作呢 数据是从 this props 中取到的 在重置的时候 1 方法一 不调接口 this props xxx 或者 this
  • 读文件 —— WEB前端读取本地文件内容哪些事(前台解析txt文件)…… – 杰儿__er 的博客 – CSDN博客...

    文章目录 隐藏 读文件 WEB前端读取本地文件内容哪些事 前台解析txt文件 参考链接 https blog csdn net pl1612127 article details 77862174可供参考的链接 https zhidao b
  • android dialog对话框,Android Dialog对话框详解

    废话不多说了 直接给大家贴代码了 布局文件xml xmlns tools http schemas android com tools android layout width match parent android layout hei
  • Windows下使用命令行登陆、操作MYSQL5.7数据库

    一 运行数据库 1 启动服务 net start mysql 2 连接数据库 mysql h IP地址 u 数据库 p mysql u 数据库 p 如 mysql u root p mysql h127 0 0 1 u root p 二 查
  • IntelliJ IDEA提示Unable to resolve table ‘表名‘

    一 说明 我几乎看了CSDN所有大神的解答 尝试之后都无效 通过自己研究 终于解决此问题 遂在此记录 二 我的解决方案 在正常使用IntelliJ IDEA连接到数据库后 SQL语句提示Unable to resolve table 表名
  • 两个数字相加的代码

    内容 include
  • mac os x 使用外接摄像头

    参考 http bbs feng com read htm tid 2745586 html http www jb51 net os MAC 470090 html 1 打开macbook 自带程序Photo Booth 2 在左上工具条
  • Python3 CGI 编程

    什么是 CGI CGI 目前由 NCSA 维护 NCSA 定义 CGI 如下 CGI Common Gateway Interface 通用网关接口 它是一段程序 运行在服务器上如 HTTP服务器 提供同客户端 HTML 页面的接口 网页浏
  • Mysql子查询和联合(UNION)查询详解

    原文 http www 111cn net database mysql 47438 htm 在mysql中UNION查询是可以联合多个表 union只是mysql中联合查询的一个小点了 下面我来给大家介绍各种mysql中联合查询的语句 大