《Mysql入門在MySQL中使用子查詢和標(biāo)量子查詢的基本操作教程》要點:
本文介紹了Mysql入門在MySQL中使用子查詢和標(biāo)量子查詢的基本操作教程,希望對您有用。如果有疑問,可以聯(lián)系我們。
MySQL 子查詢
子查詢是將一個 SELECT 語句的查詢結(jié)果作為中間結(jié)果,供另一個 SQL 語句調(diào)用.MySQL 支持 SQL 尺度要求的所有子查詢格式和操作,也擴(kuò)展了特有的幾種特性.
子查詢沒有固定的語法,一個子查詢的例子如下:
MYSQL學(xué)習(xí)
SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
對應(yīng)的兩個數(shù)據(jù)表如下:
article 文章表:
MYSQL進(jìn)修
MYSQL進(jìn)修
user 用戶表:
MYSQL進(jìn)修
MYSQL進(jìn)修
查詢返回成果如下所示:
MYSQL學(xué)習(xí)
MYSQL進(jìn)修
在該例子中,首先通過子查詢語句查詢出所有 status=1 的 uid,實際的查詢相似于:
MYSQL學(xué)習(xí)
SELECT * FROM article WHERE uid IN(1,2)
MySQL 標(biāo)量子查詢
標(biāo)量子查詢是指子查詢返回的是單一值的標(biāo)量,如一個數(shù)字或一個字符串,也是子查詢中最簡單的返回情勢.
一個標(biāo)量子查詢的例子如下:
MYSQL學(xué)習(xí)
SELECT * FROM article WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)
在該例子中,子查詢語句:
MYSQL進(jìn)修
SELECT uid FROM user WHERE status = 1 ORDER BY uid DESC LIMIT 1
返回的是單一的數(shù)字(如 2),現(xiàn)實的查詢語句為:
MYSQL學(xué)習(xí)
SELECT * FROM article WHERE uid = 2
使用子查詢進(jìn)行比擬
可以使用 = > < >= <= <> 這些操作符對子查詢的標(biāo)量結(jié)果進(jìn)行比擬,通常子查詢的位置在比擬式的右側(cè):
MYSQL學(xué)習(xí)
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
提示
對于采用這些操作符之一進(jìn)行的比擬,子查詢必須返回一個標(biāo)量.唯一的例外是 = 可以和行子查詢同時使用.
子查詢與表連接
在很多情況下,子查詢的效果與 JOIN 表連接很類似,但一些特殊情況下,是必須用子查詢而不能用表連接的,如:
MYSQL學(xué)習(xí)
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
以及下例:
MYSQL進(jìn)修
SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)
該例子要找出用戶頒發(fā)了 2 篇文章的所有文章記錄.對應(yīng)的兩個數(shù)據(jù)表如下:
article 文章表:
MYSQL學(xué)習(xí)
MYSQL進(jìn)修
user 用戶表:
MYSQL進(jìn)修
MYSQL進(jìn)修
查詢返回成果如下所示:
MYSQL學(xué)習(xí)
MYSQL進(jìn)修
歡迎參與《Mysql入門在MySQL中使用子查詢和標(biāo)量子查詢的基本操作教程》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9890.html