學學習網 手機版

學學習網

學習路徑: 學習首頁 > 數據庫 > MySQL >

MySQL 子查詢(subquery)語法與用法實例

設置字體:
----------------------------------

MySQL 子查詢

子查詢是將一個 SELECT 語句的查詢結果作為中間結果,供另一個 SQL 語句調用。MySQL 支持 SQL 標準要求的所有子查詢格式和操作,也擴展了特有的幾種特性。

子查詢沒有固定的語法,一個子查詢的例子如下:

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

對應的兩個數據表如下:

article 文章表:
aid title content uid
1 文章1 文章1正文內容... 1
2 文章2 文章2正文內容... 1
3 文章3 文章3正文內容... 2
4 文章4 文章4正文內容... 3
user 用戶表:
uid username password status
1 admin b7e591c246d010bb2ccd77d52490c85e 1
2 小明 a193686a53e4de85ee3f2ff0576adf01 1
3 李氏 0193686a35e4de85ee3f2ff0567adf490 0

查詢返回結果如下所示:

aid title content uid
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 序列),可以分為如下幾類:

  • 標量子查詢:返回單一值的標量,最簡單的形式。
  • 列子查詢:返回的結果集是 N 行一列。
  • 行子查詢:返回的結果集是一行 N 列。
  • 表子查詢:返回的結果集是 N 行 N 列。

MySQL 子查詢操作符

在主查詢中,可以使用比較操作符以使用操作符來對子查詢返回的結果進行比較,從而確定查詢的條件。如上面例子使用了 IN 操作符。

可以使用的操作符有:= > < >= <= <> ANY IN SOME ALL EXISTS ,我們將在本節余下的教程中學習這些操作符在子查詢中的使用方法。

----------------------------------
課程列表
重點難點
贊助鏈接
倾国妲己官网 倩女手游 灵兽 赚钱 移动棋牌手机版 双色球规律杀凤尾 北京十一选五开奖结果爱彩乐 双色球开奖结果带坐标走势图 宁夏11选5开奖结果彩票控 大乐透微信合买怎样操作. 吉林11选5五码遗漏 中国福利彩票官方网站开奖时间 免费下载娱网棋牌 复式分解器 股票分析方法有几种 甘肃十一选五前三直绝招 视讯游戏如何赚钱 山东11选5任选遗漏 中国福利彩票