UNION
(SELECT 2, col2a, col2b, ... FROM t2) ORDER BY sort_col;
To additionally maintain sort order within individual
clause:
ORDER BY
(SELECT 1 AS sort_col, col1a, col1b, ... FROM t1)
UNION
(SELECT 2, col2a, col2b, ... FROM t2) ORDER BY sort_col, col1a;
Use of an additional column also enables you to determine which
columns can provide other identifying information as well, such as a string that indicates a table name.
13.2.9. Subquery Syntax
A subquery is a
Starting with MySQL 4.1, all subquery forms and operations that the SQL standard requires are
supported, as well as a few features that are MySQL-specific.
Here is an example of a subquery:
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);
In this example,
column1 FROM t2)
in fact it is possible to nest subqueries within other subqueries, to a considerable depth. A subquery
must always appear within parentheses.
The main advantages of subqueries are:
• They allow queries that are structured so that it is possible to isolate each part of a statement.
• They provide alternative ways to perform operations that would otherwise require complex joins and
unions.
• Many people find subqueries more readable than complex joins or unions. Indeed, it was the
innovation of subqueries that gave people the original idea of calling the early SQL "Structured Query
Language."
Here is an example statement that shows the major points about subquery syntax as specified by the
SQL standard and supported in MySQL:
DELETE FROM t1
WHERE s11 > ANY
(SELECT COUNT(*) /* no hint */ FROM t2
WHERE NOT EXISTS
(SELECT * FROM t3
WHERE ROW(5*t2.s1,77)=
(SELECT 50,11*s1 FROM t4 UNION SELECT 50,77 FROM
(SELECT * FROM t5) AS t5)));
A subquery can return a scalar (a single value), a single row, a single column, or a table (one or more
rows of one or more columns). These are called scalar, column, row, and table subqueries. Subqueries
that return a particular kind of result often can be used only in certain contexts, as described in the
following sections.
There are few restrictions on the type of statements in which subqueries can be used. A subquery can
contain many of the keywords or clauses that an ordinary
BY, LIMIT, joins, index hints,
ORDER
A subquery's outer statement can be any one of: SELECT, INSERT, UPDATE, DELETE, SET, or DO.
Subquery Syntax
statement within another statement.
SELECT
SELECT * FROM t1 ...
is the subquery. We say that the subquery is nested within the outer query, and
UNION
results, add a secondary column to the
SELECT
SELECT
is the outer query (or outer statement), and
SELECT
constructs, comments, functions, and so on.
1098
each row comes from. Extra
(SELECT
can contain: DISTINCT,
GROUP
BY,
Need help?
Do you have a question about the 5.0 and is the answer not in the manual?
Questions and answers