JOINTURE À DROITE SQL
Mot-clé SQL RIGHT JOIN
Le mot-clé RIGHT JOIN renvoie toutes les lignes de la table de droite (table2), même s'il n'y a aucune correspondance dans la table de gauche (table1) . S'il n'y a aucune correspondance dans le tableau de gauche, le résultat est NULL.
Syntaxe SQL RIGHT JOIN
SELECT nom_colonne(s)
FROM table1
REJOIGNEZ À DROITE table2
ON table1.column_name=table2.column_name;
FROM table1
REJOIGNEZ À DROITE table2
ON table1.column_name=table2.column_name;
ou :
SELECT nom_colonne(s)
FROM table1
JOINTURE EXTÉRIEURE DROITE table2
ON table1.column_name=table2.column_name;
FROM table1
JOINTURE EXTÉRIEURE DROITE table2
ON table1.column_name=table2.column_name;
Remarque : Dans certaines bases de données, RIGHT JOIN est appelé RIGHT OUTER 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 | | États-Unis
| 2 | Taobao | https://www.taobao.com/ | |
| Weibo | http://weibo.com/ |
| | stackoverflow | http://stackoverflow.com/ | 0 |
+----+--------------+--------- - ----------------+------+---------+
Exemple SQL RIGHT JOINL'instruction SQL suivante sera renvoyer les enregistrements d'accès au site Web. Dans l'exemple suivant, nous utilisons access_log comme table de gauche et Websites comme table de droite :
| identifiant | | url | | États-Unis
| 2 | Taobao | https://www.taobao.com/ | |
| Weibo | http://weibo.com/ |
| | stackoverflow | 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 RIGHT JOINL'instruction SQL suivante sera renvoyer les enregistrements d'accès au site Web. Dans l'exemple suivant, nous utilisons access_log comme table de gauche et Websites comme table de droite :
Exemple
SELECT Websites.name, access_log.count, access_log.date
FROM access_log
RIGHT JOIN Sites Web
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;
Le résultat de l'exécution du code SQL ci-dessus est le suivant : RIGHT JOIN Sites Web
ON access_log.site_id=Websites.id
ORDER BY access_log.count DESC;
Remarque : DROITE Mot-clé JOIN à droite La table (Sites Web) renvoie toutes les lignes, même s'il n'y a aucune correspondance dans la table de gauche (access_log).