WEB DEVELOPER SITE
HTMLCSSJAVASCRIPTSQLPHPBOOTSTRAPJQUERYANGULARXML
 

SQL INNER JOIN Keyword


SQL INNER JOIN keyword

The INNER JOIN keyword returns rows if there is at least one match in the table.

SQL INNER JOIN syntax

SELECT column_name (s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name ;

Or:

SELECT column_name (s)
FROM table1
JOIN table2
ON table1.column_name = table2.column_name ;

Note: INNER JOIN is the same as JOIN.

SQL INNER JOIN


Demo database

In this tutorial, we will use the RUNOOB sample database.

Here is the data from the "Websites" table:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/ | 1     | USA     |
| 2  | Indiatimes          | https://www.Indiatimes.com/| 13    | IN      |
| 3  | zomato      | http://www.zomato.com/ | 4689  | IN      |
| 4  | indiamart          | http://indiamart.com/      | 20    | IN |
| 5  | Facebook     | https://www.facebook.com/| 3     | USA     |
| 7  | stackoverflow | http://stackoverflow.com/|   0 | IND     |
+----+---------------+---------------------------+-------+---------+

Here is the data for the "access_log" site visit log:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)

SQL INNER JOIN instance

The following SQL statement will return visits to all websites:

Example

SELECT Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id = access_log.site_id
ORDER BY access_log.count;

The result of executing the above SQL is as follows:

Note: The INNER JOIN keyword returns rows when there is at least one match in the table. If the rows in the "Websites" table do not match in "access_log", those rows will not be listed.