Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Single Row Friendship Database Schema mit Abrufen der Benutzer-ID aus der einen oder anderen Spalte

Diese Abfrage würde den ID-Wert und den Namen der Freunde von #5 zurückgeben, wie in diesem SQL-Fiddle-Beispiel

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

Die UNION entfernt Duplikate, sodass diese Abfrage sowohl für einen einzelnen Datensatz von Freunden als auch für die Freundschaft mit 2 Datensätzen funktioniert, die Sie im Kommentar erwähnen. Sie sollten die 2-Datensatz-Freundschaft jedoch nicht benötigen, da im zweiten Datensatz keine neuen Informationen gespeichert werden, die Sie nicht erhalten könnten, wenn Sie nur einen Datensatz haben.