Comment rejoindre la même table plusieurs fois dans MySQL
Dans les scénarios où vous devez relier les enregistrements de la même table plusieurs fois au sein d'un requête, MySQL offre la possibilité de joindre une table avec elle-même. Cela vous permet de récupérer des données de différentes lignes d'une même table, créant ainsi une nouvelle relation entre les lignes.
Pour illustrer ce concept, considérons le scénario suivant :
Vous disposez de deux tables : "domaines" et "avis". La table "domaines" stocke les ID de domaine et les noms de domaine, tandis que la table "avis" contient des données d'avis et référence les noms de domaine pour l'expéditeur (rev_dom_from) et le destinataire (rev_dom_for).
Votre tâche consiste à afficher les deux. noms de domaine sur une page Web. Bien que vous puissiez facilement afficher un nom de domaine à l'aide d'un LEFT JOIN standard, la question se pose : comment récupérer le deuxième nom de domaine de la colonne "rev_dom_from" ?
La solution réside dans l'utilisation de plusieurs jointures. En rejoignant plusieurs fois la table "domaines", vous pouvez établir différentes relations entre les avis et les noms de domaine correspondants :
SELECT toD.dom_url AS ToURL, fromD.dom_url AS FromUrl, rvw.* FROM reviews AS rvw LEFT JOIN domain AS toD ON toD.Dom_ID = rvw.rev_dom_for LEFT JOIN domain AS fromD ON fromD.Dom_ID = rvw.rev_dom_from
Dans cette requête :
En créant un alias pour les tables jointes, vous pouvez différencier les deux instances et récupérer les données souhaitées. Cette technique consistant à rejoindre la même table plusieurs fois est communément appelée « auto-jointure » et peut être appliquée dans divers scénarios où vous devez établir plusieurs relations au sein d'une seule table.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!