0
這裏是我的查詢。當我內部連接2個表時,沒有問題。sql server 2008,內部連接3表時如何擺脫重複
SELECT S.* ,
U.Avatar ,
U.Displayname ,
ROW_NUMBER() OVER (ORDER BY S.Id DESC) rownum
FROM dbo.Smoothie AS S
INNER JOIN dbo.[User] AS U ON S.UserId = U.Id
WHERE S.IsPublic = 1
AND S.Status = 3
AND S.UserId = 2
然後,我又添加了一個內連接。現在,我得到了很多重複。
SELECT S.* ,
U.Avatar ,
U.Displayname,
ROW_NUMBER() OVER (ORDER BY S.Id DESC) rownum
FROM dbo.Smoothie AS S
INNER JOIN dbo.[User] AS U ON S.UserId = U.Id
INNER JOIN dbo.Favorite AS F ON U.Id = F.UserId
WHERE S.IsPublic = 1
AND S.Status = 3
AND F.UserId = 2
一個解決方案是使用截然不同的。不過,我必須註釋掉row_number,我需要row_number來做分頁。有沒有另一種方法來擺脫重複?
SELECT DISTINCT S.* ,
U.Avatar ,
U.Displayname
-- ROW_NUMBER() OVER (ORDER BY S.Id DESC) rownum
FROM dbo.Smoothie AS S
INNER JOIN dbo.[User] AS U ON S.UserId = U.Id
INNER JOIN dbo.Favorite AS F ON U.Id = F.UserId
WHERE S.IsPublic = 1
AND S.Status = 3
AND F.UserId = 2