首页 >

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

数据库|mysql教程在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】
MySQL,子查询,教程,MySQL教程
数据库-mysql教程
MySQL 子查询
子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用。MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性。
子查询没有固定的语法,一个子查询的例子如下:
unity3d 游戏 源码,ubuntu查看分区id,榻榻米下面出现爬虫,$_get php,青岛seo基础lzw
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
约战牛牛之开心斗牛房卡牛牛游戏源码,ubuntu 启动是暂停,研究爬虫的论文,php libwebp,seo 的目标lzw
对应的两个数据表如下:
article 文章表:
用vb编程二维码源码,vscode输入点后联想,ubuntu csv文件,tomcat取消rfc限制,爬虫采集地图,php 底层函数,seo.126bet6.com,网站后台背景图片,贷款手机版html模板lzw
在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

user 用户表:

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

查询返回结果如下所示:

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

在该例子中,首先通过子查询语句查询出所有 status=1 的 uid,实际的查询类似于:

SELECT * FROM article WHERE uid IN(1,2)

MySQL 标量子查询
标量子查询是指子查询返回的是单一值的标量,如一个数字或一个字符串,也是子查询中最简单的返回形式。
一个标量子查询的例子如下:

SELECT * FROM article WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)

在该例子中,子查询语句:

SELECT uid FROM user WHERE status = 1 ORDER BY uid DESC LIMIT 1

返回的是单一的数字(如 2),实际的查询语句为:

SELECT * FROM article WHERE uid = 2

使用子查询进行比较
可以使用 = > = <= 这些操作符对子查询的标量结果进行比较,通常子查询的位置在比较式的右侧:

SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)

提示
对于采用这些操作符之一进行的比较,子查询必须返回一个标量。唯一的例外是 = 可以和行子查询同时使用。
子查询与表连接
在很多情况下,子查询的效果与 JOIN 表连接很类似,但一些特殊情况下,是必须用子查询而不能用表连接的,如:

SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)

以及下例:

SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)

该例子要找出用户发表了 2 篇文章的所有文章记录。对应的两个数据表如下:
article 文章表:

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

user 用户表:

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】

查询返回结果如下所示:

在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】


在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】
  • MySQL自动备份及灾难恢复
  • MySQL自动备份及灾难恢复 | MySQL自动备份及灾难恢复 ...

    在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】
  • 关于MySQL的AUTO_INCREMENT(自动递增)的设置
  • 关于MySQL的AUTO_INCREMENT(自动递增)的设置 | 关于MySQL的AUTO_INCREMENT(自动递增)的设置 ...

    在MySQL中使用子查询和标量子查询的基本操作教程【MySQL】
  • Ubuntu Linux系统下MySQL安装指南
  • Ubuntu Linux系统下MySQL安装指南 | Ubuntu Linux系统下MySQL安装指南 ...