首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从两个表中删除结果中的重复数据

从两个表中删除结果中的重复数据
EN

Stack Overflow用户
提问于 2013-01-18 03:01:15
回答 3查看 8.8K关注 0票数 0

我对Server很陌生,需要我的SQL查询之一的帮助。

我有两个桌子(RatingLikeDislike)。

我试图使用这样的LEFT JOIN从这两个表中获取数据:

代码语言:javascript
运行
复制
SELECT 
   R.ID, R.Topic, R.CountLikes, R.CountDisLikes, R.Extra, LD.UserName, LD.Clikes
FROM 
   Rating As R
LEFT JOIN 
   LikeDislike AS LD ON LD.TopicID = R.ID
ORDER BY 
   R.ID DESC

上面的SELECT语句显示结果很好,但也包括重复的结果。当数据显示时,我想删除重复项,我尝试使用DISTINCTGROUP BY,但是没有成功,可能是因为我没有正确地使用它。

更新:为了更清楚、更少混淆,让我告诉您每个表到底做了什么以及我想要实现什么。

Rating表有以下列(ID, Topic, CountLikes, CountDisLikes, Extra, CreatedByUser)。它存储每个主题的主题信息和喜好数量,以及创建该主题的用户的UserID

LikeDisLike表有以下列(ID, TopicID, UserName, Clikes)。TopicIDID表中ID列的FK。

现在,我要做的是在没有重复行的情况下从这两个表中获取信息。我需要在没有重复行的情况下从Rating表+ UserName列和Clikes列中获取数据。

更新2:

下面是与此SELECT语句重复的结果:

代码语言:javascript
运行
复制
SELECT  
   DISTINCT ld.TopicID, R.ID, R.Topic, R.CountLikes, R.CountDisLikes, 
   LD.UserName, LD.Clikes 
FROM 
   Rating AS R 
LEFT JOIN 
   LikeDislike AS LD ON  LD.TopicID = R.ID

结果产出:

代码语言:javascript
运行
复制
TopicID ID  Topic            CountLikes   CountDislikes UserName    Clikes
NULL    79  Testing at home    1           0             NULL       NULL
NULL    80  Testing at home2   1           0             NULL       NULL 
NULL    82  testing dislikes   0           1             NULL       NULL
1       1   Do You Like This   211         58            3          FALSE
2       2   Or This            17          25            3          TRUE
76      76  Testing part 3     7           5             2          FALSE
76      76  Testing part 3     7           5             3          FALSE
77      77  Testing part 4     16          6             2          TRUE
77      77  Testing part 4     16          6             3          TRUE
77      77  Testing part 4     16          6             5          TRUE
EN

Stack Overflow用户

发布于 2013-01-18 05:39:38

我认为这样可以为你提供适当的输出。

代码语言:javascript
运行
复制
select ID, Topic,CountLikes,CountDisLikes,Extra,
   UserName, Clikes from (
    SELECT distinct R.ID, R.Topic, R.CountLikes, R.CountDisLikes, R.Extra,
   LD.UserName, LD.Clikes
            , ROW_NUMBER() over (partition by R.ID order by R.ID desc) as rid
   FROM Rating As R
    LEFT JOIN LikeDislike AS LD on LD.TopicID = R.ID
    ORDER BY R.ID desc) t where rid=1 order by ID desc

另外,请检查你在其中插入的两个主题的相同id的tbl,并且也检查UserName,Clikes也是相似的。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14391767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档