[英]sql query with many to many relationship
我們有多對多關系,這些是同一關系及其非分層數據的詳細信息。
對於用戶名測試1 >>查找團隊>>然后查找其他團隊成員
Table Team (Team Table)
Id Name
1 Ninja
2 Maverick
3 Transformer
Table User (User Table)
Id Name Email
1 test1 test1@test.com
2 test2 test2@test.com
3 test3 test3@test.com
Table Team_USER_Map (User Map)
ID User_Id Team ID
1 1 1
2 1 2
3 2 3
4 2 1
5 3 1
6 3 2
7 3 3
問題陳述 :
根據用戶名,我需要找到同一團隊的所有其他用戶。
因此,對於用戶名='test1',我需要找到它所屬的團隊以及屬於同一團隊的其他用戶。
嘗試這個:
DECLARE @Name as nvarchar (50)
SET @Name = 'test1'
SELECT u.Name as UserName, u.Email, t.Name as TeamName
FROM Team as t INNER JOIN Team_USER_Map as tum ON t.Id = tum.Team_ID
INNER JOIN User as u ON u.Id = tum.User_Id
WHERE u.Name LIKE @Name OR tum.Team_ID =
(
SELECT t.Id
FROM Team as t INNER JOIN Team_USER_Map as tum ON t.Id = tum.Team_ID
INNER JOIN User as u ON u.Id = tum.User_Id
WHERE u.Name LIKE @Name
)
我認為這就是您想要實現的目標。 WHERE
子句的第一部分很容易,因為它以其名稱返回用戶。
在第二部分中,您必須使用SELECT WITHIN SELECT語句來獲取屬於類型名稱用戶組的所有用戶。
我希望它會有所幫助並且足夠清楚。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.