Mysql
 sql >> Base de données >  >> RDS >> Mysql

Schéma de base de données d'amitié à une seule ligne avec obtention de l'ID utilisateur d'une colonne ou de l'autre

Cette requête renverrait la valeur Id et le nom des amis de #5 comme indiqué dans ce Exemple SQL Fiddle

SELECT f.FriendId AS FriendId
   , u.Name AS FriendName
FROM FriendTable AS f
INNER JOIN UserAccount AS u ON f.FriendId = u.UserId
WHERE f.UserId = 5

UNION

SELECT f.UserId AS FriendId
   , u.Name AS FriendName
FROM FriendTable AS f
INNER JOIN UserAccount AS u ON f.UserId = u.UserId
WHERE f.FriendId = 5

L'UNION supprimera les doublons, ce qui fera fonctionner cette requête à la fois pour un seul enregistrement d'amis ou pour les 2 enregistrements d'amitié que vous mentionnez dans le commentaire. Vous ne devriez pas avoir besoin de l'amitié à 2 enregistrements, car il n'y a pas de nouvelles informations stockées dans le deuxième enregistrement que vous ne pouvez pas obtenir en n'ayant qu'un seul enregistrement.