We have learned how to retrieve data from one table by using SELECT statement. But, as we have learned, normalized relational databases mean the data is spread between multiple related tables. Consequently, we need to learn how to select data from more than just one table. To get complete sets of data, we will need to use the SQL JOIN clause in SELECT statement. The normal form of SQL JOIN clause in MySQL is shown here:
SELECT column_list FROM table_1
[INNER | LEFT | RIGHT] table_2 ON conditions_2
[INNER | LEFT | RIGHT] table_3 ON conditions_3 ...
After SELECT keyword is a list of column names from which you want to retrieve the data. These columns have to be in the tables you select such as table_1, table_2... It is a best practice to explicitly declare the column using the table_name.column_name syntax. This will prevent a scenario where the same column name occurs in multiple tables, causing an ambiguous reference. Next you will list the main table and then a list of table you want to join. You can use INNER JOIN, LEFT JOIN or RIGHT JOIN. You can join a table with more than two tables or even with itself. In the JOIN clause you have to declare the join conditions. If all the conditions on each join clause match, MySQL will return the corresponding data.