Curriculum
Course: MYSQL
Login

Curriculum

MYSQL

MySQL References

0/140
Text lesson

MySQL UNION

The MySQL UNION Operator

The UNION operator in MySQL combines the result sets of two or more SELECT statements.

  • Each SELECT statement within UNION must have the same number of columns.
  • The columns must also have compatible data types.
  • The columns in each SELECT statement must be in the same order.

UNION Syntax

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

UNION ALL Syntax

By default, the UNION operator selects only distinct values. To include duplicate values, use UNION ALL instead.

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

Note: The column names in the result set typically match the column names in the first SELECT statement.

Demo Database

In this tutorial, we’ll be working with the well-known Northwind sample database.

Here is a portion of the “Customers” table:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

And here is a portion of the “Suppliers” table:

SupplierID

SupplierName

ContactName

Address

City

PostalCode

Country

1

Exotic Liquid

Charlotte Cooper

49 Gilbert St.

London

EC1 4SD

UK

2

New Orleans Cajun Delights

Shelley Burke

P.O. Box 78934

New Orleans

70117

USA

3

Grandma Kelly’s Homestead

Regina Murphy

707 Oxford Rd.

Ann Arbor

48104

USA

SQL UNION Example

The following SQL statement retrieves the distinct cities from both the “Customers” and the “Suppliers” tables:

Example

SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

Note: If some customers or suppliers share the same city, each city will appear only once in the result because UNION selects only distinct values. To include duplicate values, use UNION ALL instead.

SQL UNION ALL Example

The following SQL statement retrieves the cities, including duplicate values, from both the “Customers” and the “Suppliers” table:

Example

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

SQL UNION With WHERE

The following SQL statement retrieves distinct German cities from both the “Customers” and the “Suppliers” tables:

Example

SELECT City, Country FROM Customers
WHERE Country=‘Germany’
UNION
SELECT City, Country FROM Suppliers
WHERE Country=‘Germany’
ORDER BY City;

SQL UNION ALL With WHERE

The following SQL statement retrieves German cities, including duplicate values, from both the “Customers” and the “Suppliers” table:

Example

SELECT City, Country FROM Customers
WHERE Country=‘Germany’
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country=‘Germany’
ORDER BY City;

Another UNION Example

The following SQL statement combines all customers and suppliers:

Example

SELECT ‘Customer’ AS Type, ContactName, City, Country
FROM Customers
UNION
SELECT ‘Supplier’, ContactName, City, Country
FROM Suppliers;

Notice the “AS Type” above – it serves as an alias. SQL aliases provide temporary names to tables or columns within a query. An alias exists only for the duration of the query. In this case, we’ve created a temporary column named “Type” to indicate whether the contact person is a “Customer” or a “Supplier”.