2011-05-13 35 views
1

我有以下查詢:SQL加入到一個紀錄只有一個一對多的關係

SELECT c.[ClientID] 
     ,u.[AccessId] 
FROM [tblClient] c 
INNER JOIN [tblUser] u ON u.[Id] = c.[UserId] 

這tblUser有多個ID的每個用戶名一行。

因此,這將是這樣的:

UserID AccessID 
1   AD2F0A-965B78414-2B34906F2-0127AA5A 
1   ID2F0A9-65B784-142B34906-F20127AA5A 
1   UD2F0A9-65B78-4142B34906F-20127AA5A 
2   TD2F0A9-65B784142-B34906F-20127AA5A 
2   RD2F0A9-65B784142B3-4906-F20127AA5A 
3   WD2F0A96-5B784142-B34906F201-27AA5A 
3   ZD2F0A96-5B784-142B34-906F2-0127AA5A 
3   CD2F0A965-B784142B3-4906F20-127AA5A 

有沒有辦法只能獲得頂部(或1)ACCESSID每個用戶ID?不管我得到哪個AccessID,我只想要其中的1個。

感謝

回答

6
SELECT c.[ClientID], MAX(u.[AccessId]) 
    FROM [tblClient] c 
     INNER JOIN [tblUser] u 
      ON u.[Id] = c.[UserId] 
    GROUP BY c.[ClientID] 
+0

對不起,這是一個壞榜樣。我的u.AccessId實際上是一個UniqueIdentifier – user380432 2011-05-13 16:52:44

+0

@User - 它仍然有效。代碼基本上說:「給我每個用戶ID的頂級accessid,每個用戶只有一行」 – JNK 2011-05-13 16:58:17

+0

我得到以下內容:操作數數據類型uniqueidentifier對於最大運算符無效。 – user380432 2011-05-13 16:59:50

相關問題