三张关联后取唯一记录为什么结果不正确呢
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
------解决方案--------------------在视图设计器中,做吧,加上左联 或 右联 应该就能解决
------解决方案--------------------关注额 自己倒是没发生过这种事情 显示一样应该可以不显示重复吧