這是查詢的SELECT列表中的子查詢。
到那裏,讓我們來看看其他一些例子
SELECT t.id
, 'bar' AS foo
FROM mytable
WHERE ...
LIMIT ...
「酒吧」僅僅是被每行中從查詢結果集返回(在一個名爲foo列)一個字符串。
此外,MySQL允許我們在不一個運行一個查詢FROM子句
SELECT 'fee' AS fum
我們也可以把一個子查詢中查詢的SELECT列表。例如:
SELECT t.id
, (SELECT r.id FROM resorts r ORDER BY r.id ASC LIMIT 1) AS id
FROM mytable
WHERE ...
LIMIT ...
你問的查詢模式是一個沒有FROM子句
並恢復只表達一個SELECT語句從一個子查詢的結果。
例如:
SELECT e.salary
FROM Employee e
GROUP BY e.salary
ORDER BY e.salary DESC
LIMIT 4,1
如果此查詢運行時,它會返回一個列,並返回一個或零行。 (不超過一個)。這滿足在另一個查詢的SELECT列表中使用的子查詢的要求。
SELECT (subquery) AS alias
由此,執行外部查詢。沒有FROM子句,所以MySQL返回一行。結果集將包含一列,名稱爲「別名」。
對於外部查詢返回的每一行,MySQL都會執行SELECT列表中的子查詢。如果子查詢返回一行,則子查詢的SELECT列表中的表達式的值將被分配給結果集的「別名」列。如果子查詢的執行沒有返回一行,那麼MySQL會爲「別名」列指定一個NULL值。