Query with an Inner Join in MySQL

Q

How To Write a Query with an Inner Join in MySQL?

✍: FYIcenter.com

A

If you want to query from two tables with an inner join, you can use the INNER JOIN ... ON clause in the FROM clause. The tutorial exercise below creates another testing table and returns output with an inner join from two tables: fyi_links and fyi.rates. The join condition is that the id in the fyi_links table equals to the id in the fyi_rates table:

mysql> CREATE TABLE fyi_rates (id INTEGER, 
   comment VARCHAR(16));
   
mysql> INSERT INTO fyi_rates VALUES (101, 'The best');
mysql> INSERT INTO fyi_rates VALUES (102, 'Well done');
mysql> INSERT INTO fyi_rates VALUES (103, 'Thumbs up');
mysql> INSERT INTO fyi_rates VALUES (204, 'Number 1');
mysql> INSERT INTO fyi_rates VALUES (205, 'Not bad');
mysql> INSERT INTO fyi_rates VALUES (206, 'Good job');
mysql> INSERT INTO fyi_rates VALUES (207, 'Nice tool');

mysql> SELECT fyi_links.id, fyi_links.url, 
   fyi_rates.comment FROM fyi_links
   INNER JOIN fyi_rates ON fyi_links.id = fyi_rates.id;
+-----+-------------------+-----------+
| id  | url               | comment   |
+-----+-------------------+-----------+
| 101 | dev.fyicenter.com | The best  |
| 102 | dba.fyicenter.com | Well done |
| 103 | sqa.fyicenter.com | Thumbs up |
+-----+-------------------+-----------+
3 rows in set (0.49 sec)

Note that when multiple tables are used in a query, column names need to be prefixed with table names in case the same column name is used in both tables.

Note also that there are a number of rows from both tables did not return in the output because they did meet the join condition.

 

SELECT Statements with JOIN and Subqueries in MySQL

⇒⇒MySQL Database Tutorials

2016-10-17, 211👍, 0💬