SQL LEFT JOIN Keyword

From http://www.w3schools.com (Copyright Refsnes Data)

# SQL LEFT JOIN Keyword

The LEFT JOIN keyword returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2).

### SQL LEFT JOIN Syntax

    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name

PS: In some databases LEFT JOIN is called LEFT OUTER JOIN.

## SQL LEFT JOIN Example

The "Persons" table:

P_Id | LastName | FirstName | Address | City
--- | --- | --- | --- | ---
1 | Hansen | Ola | Timoteivn 10 | Sandnes
2 | Svendson | Tove | Borgvn 23 | Sandnes
3 | Pettersen | Kari | Storgt 20 | Stavanger

The "Orders" table:

O_Id | OrderNo | P_Id
--- | --- | ---
1 | 77895 | 3
2 | 44678 | 3
3 | 22456 | 1
4 | 24562 | 1
5 | 34764 | 15

Now we want to list all the persons and their orders - if any, from the tables above.

We use the following SELECT statement:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    LEFT JOIN Orders
    ON Persons.P_Id=Orders.P_Id
    ORDER BY Persons.LastName

The result-set will look like this:

LastName | FirstName | OrderNo
--- | --- | ---
Hansen | Ola | 22456
Hansen | Ola | 24562
Pettersen | Kari | 77895
Pettersen | Kari | 44678
Svendson | Tove |

The LEFT JOIN keyword returns all the rows from the left table (Persons), even if there are no matches in the right table (Orders).

From http://www.w3schools.com (Copyright Refsnes Data)