Summary: in this tutorial, you will learn how to use the MariaDB left join
clause to query data from multiple tables.
Introduction to MariaDB left join clause
Suppose that you use the left join
clause to retrieve data from two tables t1
and t2
. Here is the syntax of the left join
clause for joining two tables:
select select_list from t1 left join t2 on join_condition;
Code language: SQL (Structured Query Language) (sql)
In this syntax, the left join
starts selecting data from the left table t1
. It compares each row from t1
with every row from t2
.
If both rows cause the join condition to evaluate to true, the left join
combines columns of rows from both tables into a new row and includes this row in the result set.
In case the rows are not matched, the left join
still creates a new row whose columns are the combination of columns from both tables. However, it uses null
values for the columns in the right table.
The following diagram illustrates the left join
operation:

In general, you join tables by matching rows using the equality operator (=) and use the primary key columns of the left table (t1
) to match with the foreign key columns of the right table (t2
).
select select_list from t1 left join t2 on t1.column1 = t2.column1;
Code language: SQL (Structured Query Language) (sql)
In case the columns for equality matching have the same names, you can use the using
syntax:
select select_list from t1 left join t2 using (column1);
Code language: SQL (Structured Query Language) (sql)
If you want to join three or more tables, you just need to add the left join
clauses to the select
statement:
select select_list from t1 left join t2 on join_condition2 left join t3 on join_condition2 ...;
Code language: SQL (Structured Query Language) (sql)
MariaDB left join clause example
Consider the following tables countries
and country_stats
from the sample database.

This example finds the countries and their GDP by joining the countries
table with the country_stats
table using the left join
clause:
select name, year, gdp from countries c left join country_stats s on s.country_id = c.country_id order by name;
Code language: SQL (Structured Query Language) (sql)

Here is an equivalent query that uses the using
syntax:
select name, year, gdp from countries left join country_stats using (country_id) order by name;
Code language: SQL (Structured Query Language) (sql)
To find countries that do not have GDP information, you use the following query:
select name, year, gdp from countries left join country_stats using (country_id) where gdp is null order by name;
Code language: SQL (Structured Query Language) (sql)

In this tutorial, you will learn how to use the MariaDB left join
clause to query data from multiple tables.