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

三张关联后取唯一记录为什么结果不正确呢,该怎么解决

2012-04-13 
三张关联后取唯一记录为什么结果不正确呢selectdistincta.a1,b.b1,c.c1froma,b,cwherea.a1b.b1anda.a1c.

三张关联后取唯一记录为什么结果不正确呢
select   distinct   a.a1,b.b1,c.c1   from   a,b,c   where   a.a1=b.b1   and   a.a1=c.c1   order   by   c.c1   desc

a是新闻表
b是新闻分类表
c是新闻的留言表

a中40多条记录
b中12条记录
c中3条记录,但有2条是同一条新闻的留言。

本人的目地是想按留言表的倒序取新闻记录,指向同一条新闻的留言取一条就可以了,结果应得到2条不同的记录,但我这条语句执行后却得到3条记录,其中有两条是一样的。加DISTINCT没有起到作用,不知该如何处理才好。


[解决办法]
select distinct a.a1,b.b1,c.c1 from a,b,c where c.c1=b.b1 and c.c1=a.a1 order by c.c1 desc
[解决办法]
--try


A(AID int, Title varchar(10), BID int)
B(BID int, TypeName varchar(10))
C(CID int, Title varchar(10), AID int)


select * from A
inner join B on A.BID=B.BID
left join
(
select * from C as tmp
where not exists(select 1 from C where AID=tmp.AID and CID> tmp.CID)
)C on A.AID=C.AID
[解决办法]
在视图设计器中,做吧,加上左联 或 右联 应该就能解决
[解决办法]
关注额 自己倒是没发生过这种事情 显示一样应该可以不显示重复吧

热点排行