Maison  >  Article  >  base de données  >  Comment rejoindre efficacement la même table plusieurs fois sur différentes colonnes pour la récupération des informations utilisateur ?

Comment rejoindre efficacement la même table plusieurs fois sur différentes colonnes pour la récupération des informations utilisateur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 10:36:30326parcourir

How to Efficiently Join the Same Table Multiple Times on Different Columns for User Information Retrieval?

Joindre la même table deux fois sur des colonnes différentes pour une récupération polyvalente des informations utilisateur

Cette requête vise à récupérer les noms d'utilisateur pour les colonnes open_by et close_by dans la table des plaintes, où les utilisateurs sont stockés dans la table des utilisateurs. Le défi consiste à joindre la table utilisateur plusieurs fois en utilisant différentes colonnes.

Pour accomplir cette tâche, nous utilisons une opération LEFT JOIN pour chaque instance de la table utilisateur, en alias les tables jointes comme A et B pour plus de clarté. La requête se déroule comme suit :

SELECT 
     complaint.complaint_text, 
     A.username, 
     B.username
FROM 
     complaint 
     LEFT JOIN user A ON A.user_id=complaint.opened_by 
     LEFT JOIN user B ON B.user_id=complaint.closed_by

Dans cette requête, nous commençons par sélectionner la colonne complaint_text de la table des plaintes et les noms d'utilisateur de la table des utilisateurs pour les colonnes open_by et close_by.

Nous joignons ensuite la table des plaintes à la table des utilisateurs basée sur la colonne opens_by en utilisant LEFT JOIN. Cela nous permet de faire correspondre le user_id de plainte.opened_by au user_id dans la table user et de récupérer le nom d'utilisateur correspondant. Nous alias la table jointe comme A.

Ensuite, nous effectuons une autre opération LEFT JOIN entre la table de réclamation et la table utilisateur basée sur la colonne close_by. Nous alias cette table jointe comme B.

Le résultat de cette requête fournit une vue claire des détails de la plainte, ainsi que les noms d'utilisateur du plaignant et des colonnes résolues Par.

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