In SQL, the UNION operator is used to combine the result sets of two or more SELECT statements into a single result set. It only returns distinct rows from the combined result sets. Each SELECT statement within the UNION must have the same number of columns, and the corresponding columns must have compatible data types.
When performing a JOIN operation using UNION, you can follow these steps:
- Write the individual SELECT statements for the tables you want to join.
- Use the UNION operator to combine the result sets.
- Specify any additional conditions or sorting if required.
Let’s consider an example to understand how to use the UNION operator to perform a JOIN operation. Assume we have two tables: customers
and orders
. The customers
table has columns customer_id
and customer_name
, while the orders
table has columns order_id
and customer_id
.
Example
SELECT customer_name, order_id
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id
UNION
SELECT customer_name, NULL
FROM customers
WHERE customer_id NOT IN (SELECT customer_id FROM orders);
In this example, we want to retrieve the customer names along with their respective order IDs. We combine the customers
and orders
tables using the JOIN operation and select the customer_name
and order_id
columns. Additionally, we include a second SELECT statement using UNION to get the customer names who haven’t placed any orders by comparing the customer_id
columns. We use NULL to represent the order ID for customers who haven’t placed any orders.
Conclusion
The UNION operator in SQL provides a way to combine result sets from different SELECT statements. By using UNION to JOIN tables, you can retrieve information from related tables and merge them into a single result set. This can be particularly useful when you need to combine data from multiple tables with similar structures.