これは、クエリのSELECTリスト内のサブクエリです。
のは、他のいくつかの例
SELECT t.id
, 'bar' AS foo
FROM mytable
WHERE ...
LIMIT ...
を見てみましょう、そこに「バー」は、クエリからの結果セットに(fooという名前の列に)すべての行に返されるリテラル単なる文字列です。
また、MySQLのは、私たちは我々はまた、クエリのSELECTリスト内のサブクエリを置くことができます句
SELECT 'fee' AS fum
FROMせずにクエリを実行することができます。たとえば:
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
、それは一つの列を返し、いずれか1または0の行を返します。これは、別のクエリのSELECTリストで使用されるサブクエリの要件を満たします。
SELECT (subquery) AS alias
これで、外部クエリが実行されます。 FROM句はないので、MySQLは1行を返します。結果セットは、「エイリアス」という名前の1つの列で構成されます。
外部クエリによって返された各ローに対して、MySQLはSELECTリスト内でサブクエリを実行します。サブクエリが行を返す場合、サブクエリのSELECTリストの式の値は、結果セットの "エイリアス"列に割り当てられます。サブクエリの実行が行を返さない場合、MySQLは「エイリアス」列にNULLを割り当てます。