【发布时间】:2016-10-08 19:20:46
【问题描述】:
我有以下查询-
SELECT CP.PostID,CP.SectionID
FROM NewsLetter NW
inner Join MapNewsletterPosts as MM on NW.ID = MM.ID
inner join CSPosts as CP with (nolock) on MM.PostID = CP.PostID
inner join PostStatus PS on PS.Postid=CP.PostId
WHERE
NW.NewsletterDate = '2015-07-06'
and CP.IsApproved =1
ANd PS.StatusId =7
AND CP.SectionID NOT IN (92,227)
AND NW.SectionID = 95
ORDER BY MM.Newslettersortorder
上面的查询返回正确的结果如下图-
现在,当我在上述查询中再添加一个连接时 -
SELECT CP.PostID,CP.SectionID
FROM NewsLetter NW
inner Join MapNewsletterPosts as MM on NW.ID = MM.ID
inner join CSPosts as CP with (nolock) on MM.PostID = CP.PostID
inner join PostStatus PS on PS.Postid=CP.PostId
INNER JOIN NewsletterDetails ND ON ND.NewsletterDate = NW.NewsletterDate AND ND.IncludeInArticles=1 <<--added extra JOIN
WHERE
NW.NewsletterDate = '2015-07-06'
and CP.IsApproved =1
ANd PS.StatusId =7
AND CP.SectionID NOT IN (92,227)
AND NW.SectionID = 95
ORDER BY MM.Newslettersortorder
导致数据冗余如下图-
【问题讨论】:
标签: sql sql-server sql-server-2008 join distinct