mysql sql组合_详解mysql 组合查询

使用UNION

多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)

有两种情况需要使用组合查询:

在单个表查询中从不同的表返回类似结构的数据;

对单个表执行多个查询,按单个查询返回数据。

组合查询和多个WHERE条件:多数情况下,组合相同表的两个查询完成的工作与具有多个WHERE子句条件的单条查询完成的工作相同。

可用UNION操作符来组合数条SQL查询,所需要做的就是给出每条SELECT语句,在各条语句之间放上关键字UNION

例如:

​假设需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品,当然可以利用WHERE子句来完成,不过这里我们使用UNION

这里是两条语句的组合

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5;

dc587535936bf5c04c799cf7a50f4746.png

SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002);

5cb1a64be3a7161969b581436ddb20cb.png

可以使用下面的语句

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002);

928243a19f71ccbbd584f4fb2c494daf.png

同样,可以使用WHERE子句

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 OR vend_id IN (1001, 1002);

UNION规则

UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔

UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)

列数据烈性必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型(不同数值类型或不同的日期类型)

包含或取消重复的行

UNION会从查询的结果集中自动去除重复的行,如果想返回所有匹配行,可使用UNION ALL

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 UNION ALL SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002);

a5da2e42632c0b6b63d87ee6e7582fa7.png

对组合查询结果排序

SELECT语句的输出用ORDER BY子句排序,在用UNION组合查询时,只能使用一条ORDER BY子句。它必须出现在最后一条SELECT语句之后。不允许使用多条ORDER BY子句。

SELECT vend_id, prod_id, prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id, prod_id, prod_price FROM products WHERE vend_id IN (1001, 1002) ORDER BY vend_id, prod_price;

7041ac03dc025894e15460a53f334404.png

以上就是详解mysql 组合查询的详细内容,更多关于mysql 组合查询的资料请关注我们其它相关文章!

本文标题: 详解mysql 组合查询

本文地址: http://www.cppcns.com/shujuku/mysql/370571.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 共享表空间存储_MySQL InnoDB共享表空间

简介ibdata1ibdata1文件是InnoDB存储引擎的共享表空间文件&#xff0c;存放位置my.ini 中的 datadir"D:\phpStudy\MySQL\data"&#xff0c;目录下。查看innode_file_per_table 参数的状态show variables like %per_table;表空间Innodb存储引擎可将所有数据存放于ibda…

python36中文手册_python36中文手册_python_36_文件操作4

fopen(test.txt,a,encodingutf-8)#f.truncate()#截断&#xff0c;不指定将清空所有内容f.truncate(5)#从头开始截断&#xff0c;截断5个字符 注&#xff1a;使用f.seek()改变光标位置不顶用f.close()fopen(yesterday,r,encodingutf-8)#读写文件print(f.readline())print(f.read…

bigdecimal负数变正数_BigDecimal的用法详解

BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负scale 次幂。 float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广…

mysql 表引擎 entity framework_EntityFramework之数据库以及表基本创建(一)

前言之前有学过EF一段时间那时EF才4.0似乎还不太稳定&#xff0c;而现在EF都已7.0版本&#xff0c;同时AspNet Identity都与此大有关联&#xff0c;看来是大势所趋于是开始学习EF&#xff0c;在学EF过程中也遇到一些小问题&#xff0c;特此录下&#xff0c;以备忘&#xff01;数…

mysql+linux+无法启动服务无法启动不了_Linux实例中MySQL服务常见的无法启动或启动异常处理...

概述本文介绍了在Linux实例中&#xff0c;MySQL常见的无法启动或启动异常处理方法。详细描述常见问题处理描述&#xff0c;目录如下。提示&#xff1a;MySQL错误日志通常记录在/alidata/log/mysql/error.log文件下。MySQL配置文件my.cnf权限问题导致无法启动&#xff0c;错误提…

python3缺少pip_Ubuntu中找不到pip3命令的解决方法

Ubuntu中找不到pip3命令的解决方法Ubuntu 有 python2 和 python3。今天使用 Ubuntu 中的 python3 时&#xff0c;想要安装第三方库却发现 pip 指向的是 python2 。因为记得 Ubuntu 系统默认将 python3 的 pip 命令改成了 pip3&#xff0c;于是执行 pip3 -V &#xff0c;报命令不…

python库迁移到没有网的电脑_python实现数据库跨服务器迁移

数据库从一个服务器转移到另外一个服务器&#xff0c;怎么转&#xff1f;你可以用一分钟遇见一个人&#xff0c;用一小时了解一个人&#xff0c;用一天爱上一个人&#xff0c;但是你却要用一辈子忘记一个人。分离&#xff0c;附加&#xff1f;还是备份、还原&#xff1f;具体过…

45道mysql数据库题目_MySQL 45道练习题

--1、 查询Student表中的所有记录的Sname、Ssex和Class列。SELECT sname,ssex,class FROMstudent;--2、查询教师所有的单位即不重复的Depart列SELECT DISTINCT depart FROMteacher;--3、查询Student表的所有记录。SELECT * FROMstudent;--4、查询Score表中成绩在60到80之间的所…

linux mysql revoke_Linux环境下MySQL基础命令(4)----数据库的用户授权

MySQL数据库的root用户拥有对所有库&#xff0c;表的全部权限&#xff0c;频繁的使用root用户会给数据库带来很大的风险&#xff0c;因此应建立一些低权限用户&#xff0c;只负责一部分库、表的管理维护操作&#xff0c;甚至可以对增、删、改、查各个操作进一步细化限制&#x…

mysql更改表 值_如何更改MySQL表中行实例的值?

UPDATE命令以及WHERE子句可用于更改行实例的值。基本上&#xff0c;MySQL将根据查询中给出的条件更改值。下面的例子可以证明它假设我们想在下面给出的“测试”表中将名称从“ Ram”更改为“ Mohit”-mysql> Select * from testing;-------------| Id | Name |----------…

java创建型_Java创建型模式

Java创建型模式在软件工程中&#xff0c;创建型模式是处理对象创建的设计模式&#xff0c;试图根据实际情况使用合适的方式创建对象。基本的对象创建方式可能会导致设计上的问题&#xff0c;或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。创建型模式…

java interface 实例_Java - Interface 接口的实现方式实例

在程序的开发中&#xff0c;需要完成两个数的求和运算和比较运算功能的类非常多。那么可以定义一个接口来将类似的功能组织在一起。下面创建一个示例&#xff0c;具体介绍接口的实现方式。1)创建一个名称为 IMath 的接口&#xff0c;代码如下&#xff1a;1 public interfaceIMa…

java查看 被应用_java – 如何查看应用程序正在使用的当前堆大小?

使用此代码&#xff1a;// Get current size of heap in byteslong heapSize Runtime.getRuntime().totalMemory();// Get maximum size of heap in bytes. The heap cannot grow beyond this size.// Any attempt will result in an OutOfMemoryException.long heapMaxSize …

java gc机制新区域旧屋_Java 内存回收机制——GC机制-Go语言中文社区

一、Java GC 概念说明Java GC(Garbage Collection&#xff0c;垃圾收集&#xff0c;垃圾回收)机制&#xff0c;是Java与C/C的主要区别之一&#xff0c;作为Java开发者&#xff0c;一般不需要专门编写内存回收和垃圾清理代码&#xff0c;对内存泄露和溢出的问题&#xff0c;也不…

上古卷轴5java8_【图片】【上古卷轴5】【无心】个人整合版8.0【霜刃伤情吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼GameModeSkyrimSkyrim.esm1Update.esm1Unofficial Skyrim Patch.esp1Dawnguard.esm1Unofficial Dawnguard Patch.esp1HearthFires.esm1Unofficial Hearthfire Patch.esp1Dragonborn.esm1Unofficial Dragonborn Patch.esp1Skyrim Pr…

java反射 虚拟机优化_面试官问我:Java反射是什么?我回答竟然不上来......

每天凌晨00点00分,第一时间与你相约每日英文We all have moments of desperation. But if we can face them head on, that’s when we find out just how strong we really are.我们都有绝望的时候&#xff0c;只有在勇敢面对时&#xff0c;我们才知道我们有多坚强。每日掏心话…

mysql解压包安装linuex_CentOS下安装Apache,php,Mysql

第一步&#xff1a;通过yum安装php&#xff0c;mysql&#xff0c;httpd&#xff0c;这里默认使用CentOS提供的默认版本&#xff0c;版本较低。#yum install httpd mysql-server php php-devel php-mysql所有的安装包大小为25M&#xff0c;大概2分钟左右就能下载安装完成。第二步…

c java 开发效率高_Java 的开发效率究竟比 C++ 高在哪里?

如果选择C&#xff0c;那C 的难度与JAVA 比&#xff0c;那应该不在一个层次。因为 C 作者及委员会想给你带来足够的抽象能力&#xff0c;让你可以抽象这个世界&#xff1b;给你足够的自由与控制硬件的能力&#xff0c;及零开销的高性能。简单点说&#xff0c;C程序员如同神一般…

java sub,Java 9子软件包跨模块拆分

In Java 9, can I split sub-packages across modules? For example, can I have com.example.foo in one module and com.example.foo.bar in another module?This seems like a simple question, but for some reason Im not able to find a direct answer after some sear…

java矩阵类_151-矩阵类

[java]代码库import java.util.Scanner;import java.util.Arrays;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int r scan.nextInt();int c scan.nextInt();System.out.println("row:"r" column:"…