sql >> Databáze >  >> RDS >> Mysql

Jednořádkové schéma databáze přátelství se získáním uživatelského ID z jednoho nebo druhého sloupce

Tento dotaz by vrátil hodnotu ID a jméno přátel #5, jak je uvedeno v tomto Příklad 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

UNION odstraní duplikáty, takže tento dotaz bude fungovat jak pro jeden záznam přátel, tak pro 2 záznamy přátelství, které zmiňujete v komentáři. Neměli byste však potřebovat přátelství se 2 záznamy, protože v druhém záznamu nejsou uloženy žádné nové informace, které byste nemohli získat pouze z jednoho záznamu.




  1. Získejte záznamy s nejvyšším/nejmenším <cokoli> na skupinu

  2. Nejjednodušší případ mapy typu one-to-many v Hibernate nefunguje v MySQL

  3. Aktualizace databáze sqlite pro android

  4. Správa klíčů SSL a šifrování dat MySQL při přenosu