SQL INNER JOIN clause is used to select data from 2 (or more) tables, at least one match in both tables.
SQL INNER JOIN Clause Syntax
SELECT Table1.Column1, Table1.Column2, ... , Table2.Column1, Table2.Column2, ... FROM Table1 INNER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName
Note: SQL INNER JOIN is the default type of SQL JOIN. “JOIN” = “INNER JOIN”
SQL INNER JOIN Clause Example
Table: Employees
| EmployeeId | FirstName | LastName | Department | Salary |
|---|---|---|---|---|
| 203 | Mazojys | Fxoj | Finance | 78000 |
| 204 | Jozzh | Lnanyo | Finance | 45800 |
| 205 | Syllauu | Dfaafk | Finance | 57000 |
| 206 | Gecrrcc | Srlkrt | Finance | 62000 |
Table: Tickets
| TicketID | TicketNo | EmployeeId |
|---|---|---|
| 1 | 2349 | 203 |
| 2 | 2400 | 204 |
| 3 | 2438 | 205 |
Select all the employees with any tickets:
SELECT Employees.EmployeeId
, Employees.FirstName
, Employees.LastName
, Tickets.TicketNo
FROM Employees
INNER JOIN Tickets
ON Employees.EmployeeId = Tickets.EmployeeId
The result will look like:
| EmployeeId | FirstName | LastName | TicketNo |
|---|---|---|---|
| 203 | Mazojys | Fxoj | 2349 |
| 204 | Jozzh | Lnanyo | 2400 |
| 205 | Syllauu | Dfaafk | 2438 |
Note: The employee whose EmployeeId is 206 doesn’t have any records matched in the table Tickets, so this employee will not in the result.
As mentioned above, “JOIN” = “INNER JOIN”, so, the following statement has the same result:
SELECT Employees.EmployeeId
, Employees.FirstName
, Employees.LastName
, Tickets.TicketNo
FROM Employees
JOIN Tickets
ON Employees.EmployeeId = Tickets.EmployeeId
In most database systems, we can even write it shorter:
SELECT Employees.EmployeeId
, Employees.FirstName
, Employees.LastName
, Tickets.TicketNo
FROM Employees, Tickets
WHERE Employees.EmployeeId = Tickets.EmployeeId
