Code has been added to clipboard!

How to Use SQL INNER JOIN

Reading time 1 min
Published Aug 9, 2017
Updated Oct 10, 2019

SQL INNER JOIN Keyword: Main Tips

  • The INNER JOIN keyword selects the pair tables rows if there is a match between in two tables columns.
  • INNER JOIN acts the same as JOIN.

Syntax of SQL INNER JOIN

Selects information that has matching values in both tables.

Example
SELECT column_name(s)
FROM mytable1
INNER JOIN mytable2 ON mytable1.column_name = mytable2.column_name;

Demo Database

This is demo example from the "Developers" table in the database:

ID Name City Country
1 Tom Kurkutis New York USA
2 Ana Fernandez London UK
3 Antonio Indigo Paris France
4 Aarav Kaelin Delhi India
5 Andrew Tumota Miami USA

This is demo example from the "Orders" table in the database:

ID Customer_ID Employee_ID
20408 2 7
20409 2 5
85471 1 3
75864 5 8

SQL INNER JOIN: Examples

The next SQL statement will return all developers with orders:

Example
SELECT Orders.ID, Developers.Name
FROM Orders
INNER JOIN Developers ON Orders.ID = Developers.ID;

Note: the columns are matching, the INNER JOIN keyword selects the two tables rows. Customers will NOT be listed, if there is a difference between the rows.

In this example we JOIN three tables: select all orders with developer and client information:

Example
SELECT Orders.ID, Developers.Name, Customers.Name
FROM ((Orders
INNER JOIN Developers ON Orders.ID = Developers.ID)
INNER JOIN Customers ON Orders.ID = Customers.ID);
Learn SQL
Introduction
Syntax
Data Types
Server Data Types
Commands
Commands List
Wildcards
Constraints
Aggregate Functions
Date Functions
Date Format
Injection
SQL Server Hosting
Views
Auto-incrementation
SQL Operators
AS
AND & OR
IN
BETWEEN
WHERE
GROUP BY
HAVING
ORDER BY
LIKE
NOT
NOT EQUAL
UNION
NULL
NOT NULL
DEFAULT
UNIQUE
FOREIGN KEY
PRIMARY KEY
CHECK
Indexes
ALTER TABLE
CREATE DATABASE
CREATE TABLE
DELETE
DROP
INSERT INTO SELECT
INSERT INTO
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
UPDATE
FULL OUTER JOIN
INNER JOIN
JOIN
LEFT JOIN
RIGHT JOIN
AVG()
COUNT
FIRST
LAST
MAX
MIN()
SUM()
LEN
UCASE
MID
NOW
ROUND
FORMAT
LOWER
CONVERT
ISNULL