zoukankan      html  css  js  c++  java
  • MySQL 子查询(subquery)语法与用法实例

    MySQL 子查询

    子查询是将一个 SELECT 语句的查询结果作为中间结果,供另一个 SQL 语句调用。MySQL 支持 SQL 标准要求的所有子查询格式和操作,也扩展了特有的几种特性。

    子查询没有固定的语法,一个子查询的例子如下:

    SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
    

    对应的两个数据表如下:

    article 文章表:
    aidtitlecontentuid
    1 文章1 文章1正文内容... 1
    2 文章2 文章2正文内容... 1
    3 文章3 文章3正文内容... 2
    4 文章4 文章4正文内容... 3
    user 用户表:
    uidusernamepasswordstatus
    1 admin b7e591c246d010bb2ccd77d52490c85e 1
    2 小明 a193686a53e4de85ee3f2ff0576adf01 1
    3 Jack 0193686a35e4de85ee3f2ff0567adf490 0

    查询返回结果如下所示:

    aidtitlecontentuid
    1 文章1 文章1正文内容... 1
    2 文章2 文章2正文内容... 1
    3 文章3 文章3正文内容... 2

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

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

    MySQL 子查询分类

    上面演示了一个简单的子查询例子,根据子查询的返回数据形式(如上例中返回的 uid 序列),可以分为如下几类:

    MySQL 子查询操作符

    在主查询中,可以使用比较操作符以使用操作符来对子查询返回的结果进行比较,从而确定查询的条件。如上面例子使用了 IN 操作符。

    可以使用的操作符有:= > < >= <= <> ANY IN SOME ALL EXISTS ,我们将在本节余下的教程中学习这些操作符在子查询中的使用方法。

  • 相关阅读:
    主成分分析(PCA)原理详解
    局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍
    RSA算法原理(二)
    RSA算法原理(一)
    对倾斜的图像进行修正——基于opencv 透视变换
    GeoHash核心原理解析
    303. Range Sum Query
    325. Maximum Size Subarray Sum Equals k
    30. Substring with Concatenation of All Words
    76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/txd66/p/3269389.html
Copyright © 2011-2022 走看看