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!