日期:2014-05-17  浏览次数:20464 次

多表查询并消除重复行
我有两个表:
新闻表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,诶,最基本的倒是忘记了。多谢了,