學學習網 手機版

學學習網

學習路徑: 學習首頁 > 數據庫 > 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前三组规律 申城棋牌官方网 福建快三跨度走势图乐彩网 三分pk10在线专家计划 nba今日比赛比分 秒速赛车网站 极速11选5投注 足球彩票比分频道 股票入门视频教程 巅峰团队兼职是真的吗 云南山水麻将昆明版 快乐彩浙江快乐彩十 排列七开奖结果今天晚 私募基金配资是什么 杭州红灯区一览表2019