Example of Join Types in SQL

Tiempo de lectura: 2 minutos

In SQL, joins are used to combine rows from two or more tables based on a related condition between them. There are several types of joins, but the most important ones are: INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN.

Next, I’ll show you how to use each one with examples.

1. INNER JOIN

The INNER JOIN returns only the rows that have a match in both tables.

Syntax:

SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;

Example:
Let’s say we have two tables: customers and orders. We want to get the names of the customers and the orders they have placed.

SELECT customers.name, orders.product
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

2. LEFT JOIN

The LEFT JOIN returns all rows from the left table and the matching rows from the right table. If there are no matches, it returns NULL in the columns from the right table.

Syntax:

SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;

Example:
We want to get all customers, even those who have not placed any orders.

SELECT customers.name, orders.product
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;

3. RIGHT JOIN

The RIGHT JOIN returns all rows from the right table and the matching rows from the left table. If there are no matches, it returns NULL in the columns from the left table.

Syntax:

SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;

Example:
We want to get all orders, even those that do not have an associated customer.

SELECT customers.name, orders.product
FROM customers
RIGHT JOIN orders ON customers.id = orders.customer_id;

4. FULL JOIN

The FULL JOIN returns all rows when there is a match in one of the tables. If there are no matches, it returns NULL in the columns from the table that has no match.

Syntax:

SELECT columns
FROM table1
FULL JOIN table2 ON table1.column = table2.column;

Example:
We want to get all customers and all orders, including those that do not have a match in the other table.

SELECT customers.name, orders.product
FROM customers
FULL JOIN orders ON customers.id = orders.customer_id;

Leave a Comment