sql >> Base de Datos >  >> RDS >> Mysql

Esquema de base de datos de amistad de una sola fila con la obtención de ID de usuario de una columna u otra

Esta consulta devolvería el valor de identificación y el nombre de los amigos de #5 como se muestra en este Ejemplo de violín SQL

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

La UNION eliminará los duplicados, haciendo que esta consulta funcione tanto para un solo registro de amigos como para los 2 registros de amistad que mencionas en el comentario. Sin embargo, no debería necesitar la amistad de 2 registros, porque no hay información nueva almacenada en el segundo registro que no pueda obtener al tener solo un registro.