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
Libérer: 2025-01-03 07:05:39
original
501 Les gens l'ont consulté

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal