Maison >base de données >tutoriel mysql >Comment rejoindre automatiquement une table dans MySQL pour récupérer des données de plusieurs lignes ?

Comment rejoindre automatiquement une table dans MySQL pour récupérer des données de plusieurs lignes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-03 07:05:39528parcourir

How to Self-Join a Table in MySQL to Retrieve Data from Multiple Rows?

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 :

  • toD est l'alias pour la première instance de la table "domaines" jointe, représentant le nom de domaine "À".
  • fromD est l'alias de la deuxième instance de la table jointe Table "domains", représentant le nom de domaine "De".

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn