首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

多表查询并消除重复行,该如何处理

2012-12-16 
多表查询并消除重复行我有两个表:新闻表NewsNewID NewTitle NewCount NewContent 主键NewID广告表AdsAdID

多表查询并消除重复行
我有两个表:
新闻表News
NewID NewTitle NewCount NewContent 
主键NewID

广告表Ads
AdID AdUrl NewAdID 
主键AdID 其中NewAdID是NewID的外键


我想查询到结果是
NewTitle NewContent AdUrl ,但是总是出现重复行,各位能给个简单的代码么?多谢~~~~
[最优解释]
你使用外键的话有多条数据是正常的,比如一个新闻有两个广告,那当然就会有两条数据咯。

SELECT  News.NewTitle ,
        News.NewContent ,
        Ads.AdUrl
FROM    News ,
        Ads
WHERE   News.NEWID = ads.newadid

[其他解释]
select distinct NewTitle,NewContent,AdUrl 
[其他解释]
引用:
select distinct NewTitle,NewContent,AdUrl


依然不行,我给你举得例子只是很小的一部分,我的表比较庞大,
[其他解释]
要看你的表结构和数据,及你想要的结果,单纯distinct不能解决问题
[其他解释]
引用:
要看你的表结构和数据,及你想要的结果,单纯distinct不能解决问题



我是这样写的

select News.NewTitle,News.NewContent,Ads.AdUrl from News,Ads
where News.NewID in(select NewAdID from Ads)

即使在前面加了distinct 还是不能消除重复的,有好的解决办法么?
试过exisit但是好像没法解决,
[其他解释]
[quote=引用:]
你使用外键的话有多条数据是正常的,比如一个新闻有两个广告,那当然就会有两条数据咯。
[quote]
对,刚才一下子没想到用WHERE   News.NEWID = ads.newadid,诶,最基本的倒是忘记了。多谢了,

热点排行