多表查询并消除重复行,该如何处理
多表查询并消除重复行我有两个表:新闻表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
[其他解释]依然不行,我给你举得例子只是很小的一部分,我的表比较庞大,
[其他解释]要看你的表结构和数据,及你想要的结果,单纯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,诶,最基本的倒是忘记了。多谢了,