簡體   English   中英

與多對多關系的sql查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM