JOINTURE INTERNE SQL
Mot clé SQL INNER JOIN
Le mot clé INNER JOIN renvoie les lignes lorsqu'il y a au moins une correspondance dans la table.
Syntaxe SQL INNER JOIN
SELECT nom_colonne(s)
FROM table1
INNER JOIN table2
SUR table1.column_name=table2.column_name;
FROM table1
INNER JOIN table2
SUR table1.column_name=table2.column_name;
ou :
SELECT column_name(s)
DE table1
JOIN table2
SUR table1.column_name=table2.column_name ;
DE table1
JOIN table2
SUR table1.column_name=table2.column_name ;
Remarque : INNER JOIN est identique à JOIN.
Base de données de démonstration
Dans ce tutoriel, nous utiliserons un exemple de base de données php.
Voici les données sélectionnées dans le tableau "Sites Web" :
+----+--------------+-- - --------------+------+---------+
| identifiant | URL --------+-------+---------+
| 1 | Google https://www.google.cm/ 1 | |
| 2 | Taobao | https://www.taobao.com/ | 13 | CN |
| php Site Web chinois |
| Weibo | http://weibo.com/ |
| | http://stackoverflow.com/ | 0 |
+----+--------------+---------- ---------------+------+---------+
Exemple SQL INNER JOINL'instruction SQL suivante sera renvoie tous les enregistrements d'accès au site Web :
| identifiant | URL --------+-------+---------+
| 1 | Google https://www.google.cm/ 1 | |
| 2 | Taobao | https://www.taobao.com/ | 13 | CN |
| php Site Web chinois |
| Weibo | http://weibo.com/ |
| | http://stackoverflow.com/ | 0 |
+----+--------------+---------- ---------------+------+---------+
Voici les données de la table d'enregistrement d'accès au site Web "access_log" :
mysql> SELECT * FROM access_log;
+-----+------ --- +-------+------------+
| aide site_id | compte date |
+-----+--- --- ---+-------+------------+
| 1 | 45 | 2016-05-10 |
| 3 | 100 | 2016-05-13 |
| 3 | 2016-05-14 |
| 4 | 2016-05-14 |
| | 2016-05-14 |
| 6 | 13 | 2016-05-15 |
| -05 -16 |
| 9 | 201 | 2016-05-17 |
+-----+---------+------+- -- ---------+
9 lignes dans l'ensemble (0,00 sec)
+-----+------ --- +-------+------------+
| aide site_id | compte date |
+-----+--- --- ---+-------+------------+
| 1 | 45 | 2016-05-10 |
| 3 | 100 | 2016-05-13 |
| 3 | 2016-05-14 |
| 4 | 2016-05-14 |
| | 2016-05-14 |
| 6 | 13 | 2016-05-15 |
| -05 -16 |
| 9 | 201 | 2016-05-17 |
+-----+---------+------+- -- ---------+
9 lignes dans l'ensemble (0,00 sec)
Exemple SQL INNER JOINL'instruction SQL suivante sera renvoie tous les enregistrements d'accès au site Web :
Exemple
SELECT Websites.name, access_log.count, access_log.date
FROM Websites
INNER REJOIGNEZ access_log
SUR Websites.id=access_log.site_id
ORDER BY access_log.count;
Le résultat de l'exécution du SQL ci-dessus est le suivant : INNER REJOIGNEZ access_log
SUR Websites.id=access_log.site_id
ORDER BY access_log.count;
Remarque : INNER JOIN le mot-clé est dans le tableau. Renvoie les lignes s'il y a au moins une correspondance. Les lignes du tableau « Sites Web » ne sont pas répertoriées si elles n'ont pas de correspondance dans le « access_log ».