Ever wonder how to get a complete picture of your company from different databases? SQL can help! Merging data from tables is like putting puzzle pieces together. This lets you analyze and report on all your information at once. In this article, we’ll explore how to use SQL queries like JOIN, UNION, etc.
Let’s dive in and see how to merge these tables using SQL!
First, let’s create the tables and insert sample data.
CREATE TABLE employees (
employee_id INT,
employee_name VARCHAR(50),
department_id INT
);
INSERT INTO employees (employee_id, employee_name, department_id) VALUES
(1, 'Alice', 1),
(2, 'Bob', 2),
(3, 'Carol', 1),
(4, 'David', 3),
(5, 'Eve', 2);
CREATE TABLE departments (
department_id INT,
department_name VARCHAR(50)
);
INSERT INTO departments (department_id, department_name) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Sales'),
(4, 'Marketing');
An INNER JOIN retrieves records that have matching values in both tables.
SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.department_id;
Result:
A LEFT JOIN retrieves all records from the left table (employees), and the matched records from the right table (departments).
SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.department_id;
Result:
Retrieve all records from the right table and matched records from the left table.
SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
RIGHT JOIN departments d ON e.department_id = d.department_id;
Learn More: SQL Interview Quick Guide 2024: Ace It in Minutes!
A FULL OUTER JOIN retrieves all records when there is a match in either left or right table records
SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
FULL OUTER JOIN departments d ON e.department_id = d.department_id;
Result:
Retrieve the Cartesian product of both tables.
SELECT e.employee_id, e.employee_name, d.department_name
FROM employees e
CROSS JOIN departments d;
Result:
Join a table with itself.
SELECT e1.employee_id, e1.employee_name, e2.employee_name AS manager_name
FROM employees e1
LEFT JOIN employees e2 ON e1.department_id = e2.department_id AND e1.employee_id != e2.employee_id;
Result:
Retrieve rows from the left table where one or more matches exist in the right table (usually done with EXISTS).
SELECT e.employee_id, e.employee_name
FROM employees e
WHERE EXISTS (
SELECT 1
FROM departments d
WHERE e.department_id = d.department_id
);
Result:
Retrieve rows from the left table where no matches exist in the right table.
SELECT e.employee_id, e.employee_name
FROM employees e
WHERE NOT EXISTS (
SELECT 1
FROM departments d
WHERE e.department_id = d.department_id
);
Result:
UNION combines the result sets of two or more SELECT statements, fetching distinct rows.
SELECT employee_id, employee_name, NULL AS department_name
FROM employees
UNION
SELECT NULL AS employee_id, NULL AS employee_name, department_name
FROM departments;
Result:
Combine the result sets of two SELECT statements, including duplicates.
SELECT employee_id, employee_name, department_id
FROM employees
UNION ALL
SELECT department_id AS employee_id, department_name AS employee_name, NULL AS department_id
FROM departments;
Result:
Retrieve the intersection of two SELECT statements.
SELECT employee_id, employee_name, department_id
FROM employees
INTERSECT
SELECT department_id AS employee_id, department_name AS employee_name, NULL AS department_id
FROM departments;
Result:
By now, you’ve become a master of merging tables in SQL! You’ve seen how SQL Queries like JOIN, INNER JOINs, LEFT JOIN, FULL OUTER JOIN, etc, for a complete picture. Remember, mastering these techniques unlocks the true potential of your company’s data. Valuable insights will no longer be hidden in separate filing cabinets! You can combine information from employees, departments, sales, and more to create comprehensive reports and conduct in-depth analyses.
So go forth and conquer your data! With SQL’s table merging superpowers at your fingertips, you can transform your data into a powerful tool for making informed decisions.
Also Read: SQL For Data Science: A Beginner Guide!
A. INNER JOIN retrieves only the matching records from both tables, while OUTER JOIN retrieves matching records and all records from one or both tables depending on the type (LEFT, RIGHT, FULL).
A. CROSS JOIN is used when you need the Cartesian product of two tables, which means every row of the first table is paired with every row of the second table.
A. UNION removes duplicate records, while UNION ALL includes all duplicates.
A. SEMI JOIN returns rows from the left table with at least one match in the right table. ANTI JOIN returns rows from the left table with no matches in the right table.
A. Yes, you can join multiple tables in a single query using JOIN operations, provided the related columns match the tables.