SQL INNER JOIN Keyword

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

# SQL INNER JOIN Keyword

The INNER JOIN keyword return rows when there is at least one match in both tables.

### SQL INNER JOIN Syntax

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

PS: INNER JOIN is the same as JOIN.

## SQL INNER 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 with any orders.

We use the following SELECT statement:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    INNER 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

The INNER JOIN keyword return rows when there is at least one match in both tables. If there are rows in "Persons" that do not have matches in "Orders", those rows will NOT be listed.

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