Alias the union tables in subquery : Union « Select Clause « SQL / MySQL






Alias the union tables in subquery

   
mysql>
mysql> CREATE TABLE EmployeeS(
    ->          EmployeeNO       INTEGER      NOT NULL,
    ->          NAME           CHAR(15)     NOT NULL,
    ->          INITIALS       CHAR(3)      NOT NULL,
    ->          BIRTH_DATE     DATE                 ,
    ->          SEX            CHAR(1)      NOT NULL,
    ->          JOINED         SMALLINT     NOT NULL,
    ->          STREET         VARCHAR(30)  NOT NULL,
    ->          HOUSENO        CHAR(4)              ,
    ->          POSTCODE       CHAR(6)              ,
    ->          TOWN           VARCHAR(30)  NOT NULL,
    ->          PHONENO        CHAR(13)             ,
    ->          LEAGUENO       CHAR(4)              ,
    ->          PRIMARY KEY    (EmployeeNO)           );
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (2, 'Jack', 'R', '1948-09-01', 'M', 1975, 'Stoney Road','43', '3575NH', 'Stratford', '070-237893', '2411');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (6, 'Link', 'R', '1964-06-25', 'M', 1977, 'Haseltine Lane','80', '1234KK', 'Stratford', '070-476537', '8467');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (7, 'Wise', 'GWS', '1963-05-11', 'M', 1981, 'First Way','39', '9758VB', 'Stratford', '070-347689', NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (8, 'Mary', 'B', '1962-07-08', 'F', 1980, 'Station Road','4', '6584WO', 'Inglewood', '070-458458', '2983');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (27, 'Collins', 'DD', '1964-12-28', 'F', 1983, 'Long DRay','804', '8457DK', 'Eltham', '079-234857', '2513');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (28, 'Collins', 'C', '1963-06-22', 'F', 1983, 'Old Main Road','10', '1294QK', 'Midhurst', '010-659599', NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (39, 'Bishop', 'D', '1956-10-29', 'M', 1980, 'Eaton Square','78', '9629CD', 'Stratford', '070-393435', NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (44, 'Baker', 'E', '1963-01-09', 'M', 1980, 'Lewis Street','23', '4444LJ', 'Inglewood', '070-368753', '1124');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (57, 'Brown', 'M', '1971-08-17', 'M', 1985, 'First Way','16', '4377CB', 'Stratford', '070-473458', '6409');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (83, 'Hope', 'PK', '1956-11-11', 'M', 1982, 'Main Road','16A', '1812UP', 'Stratford', '070-353548', '1608');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (95, 'Miller', 'P', '1963-05-14', 'M', 1972, 'High Street','33A', '5746OP', 'Douglas', '070-867564', NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (100, 'Link', 'P', '1963-02-28', 'M', 1979, 'Haseltine Lane','80', '6494SG', 'Stratford', '070-494593', '6524');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (104, 'Jane', 'D', '1970-05-10', 'F', 1984, 'Stout Street','65', '9437AO', 'Eltham', '079-987571', '7060');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO EmployeeS VALUES (112, 'Bailey', 'IP', '1963-10-01', 'F', 1984, 'Vixen Road','8', '6392LK', 'Plymouth', '010-548745', '1319');
Query OK, 1 row affected (0.00 sec)

mysql>
mysql>
mysql> SELECT   EmployeeNO, NAME, EmployeeS.TOWN, NUMBER * 1000
    -> FROM     EmployeeS,
    ->         (SELECT 'Stratford' AS TOWN, 4 AS NUMBER
    ->          UNION
    ->          SELECT 'Plymouth', 6
    ->          UNION
    ->          SELECT 'Inglewood', 1
    ->          UNION
    ->          SELECT 'Douglas', 2) AS TOWNS
    -> WHERE    EmployeeS.TOWN = TOWNS.TOWN
    -> ORDER BY EmployeeNO;
+------------+--------+-----------+---------------+
| EmployeeNO | NAME   | TOWN      | NUMBER * 1000 |
+------------+--------+-----------+---------------+
|          2 | Jack   | Stratford |          4000 |
|          6 | Link   | Stratford |          4000 |
|          7 | Wise   | Stratford |          4000 |
|          8 | Mary   | Inglewood |          1000 |
|         39 | Bishop | Stratford |          4000 |
|         44 | Baker  | Inglewood |          1000 |
|         57 | Brown  | Stratford |          4000 |
|         83 | Hope   | Stratford |          4000 |
|         95 | Miller | Douglas   |          2000 |
|        100 | Link   | Stratford |          4000 |
|        112 | Bailey | Plymouth  |          6000 |
+------------+--------+-----------+---------------+
11 rows in set (0.00 sec)

mysql>
mysql> SELECT   EmployeeNO, NAME, EmployeeS.TOWN, NUMBER
    -> FROM     EmployeeS LEFT OUTER JOIN
    ->         (SELECT 'Stratford' AS TOWN, 4 AS NUMBER
    ->          UNION
    ->          SELECT 'Plymouth', 6
    ->          UNION
    ->          SELECT 'Inglewood', 1
    ->          UNION
    ->          SELECT 'Douglas', 2) AS TOWNS
    ->          ON EmployeeS.TOWN = TOWNS.TOWN
    -> ORDER BY EmployeeNO;
+------------+---------+-----------+--------+
| EmployeeNO | NAME    | TOWN      | NUMBER |
+------------+---------+-----------+--------+
|          2 | Jack    | Stratford |      4 |
|          6 | Link    | Stratford |      4 |
|          7 | Wise    | Stratford |      4 |
|          8 | Mary    | Inglewood |      1 |
|         27 | Collins | Eltham    |   NULL |
|         28 | Collins | Midhurst  |   NULL |
|         39 | Bishop  | Stratford |      4 |
|         44 | Baker   | Inglewood |      1 |
|         57 | Brown   | Stratford |      4 |
|         83 | Hope    | Stratford |      4 |
|         95 | Miller  | Douglas   |      2 |
|        100 | Link    | Stratford |      4 |
|        104 | Jane    | Eltham    |   NULL |
|        112 | Bailey  | Plymouth  |      6 |
+------------+---------+-----------+--------+
14 rows in set (0.00 sec)

mysql>
mysql>
mysql> drop table Employees;
Query OK, 0 rows affected (0.00 sec)

   
    
    
  








Related examples in the same category

1.How many of those states joined the Union in the 19th century?
2.Count how many states joined the Union on each day of the week, grouped by day name, the results will be sorte
3.Which states joined the Union in the same year as New York?
4.To select all records, including duplicates, follow the first UNION keyword with ALL
5.Creating Unions That Join
6.Sort the result set in a specific order with Union.
7.Joining Results with UNION
8.The sorting is performed on the entire UNION. If you just want to sort the second SELECT, you'd need to use pa
9.UNION does not return duplicate results (similar to the DISTINCT keyword).
10.Union columns from different tables
11.Sort data then do the union (ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY)
12.Union with sorted data
13.Put branket for union
14.Union the same tables
15.Union start dates and end dates
16.Union the subquery
17.Union constant values
18.Union numbers
19.Union the result of sum() aggregate function
20.Limit then union
21.Union grouped value
22.Union all
23.Using Union for subquery
24.Union constant value
25.Insert with union result
26.Create view for union
27.Create view for union constants
28.Display all data in "ps_games", "xbox_games" and "cube_games" as a single result set
29.Selecting Records in Parallel from Multiple Tables
30.To select a single winner from each table and combine the results