日期:2014-05-18  浏览次数:20683 次

求助,修改一个sql语句
select   a.*,b.*,c.*,d.*   from   dg1   a,dg2   b,dg3   c,dg4   d   where   a.id=b.id   and   b.id=c.id   and   c.id=d.id   order   by   a.id   desc

四个表通过id关联,现在如果表c中有两个或多个纪录的话,也会显示出来,这样就会重复,我想如果表c中有多个纪录,只显示其中的一条
谢谢!


------解决方案--------------------
select a.*,b.*,c.*,d.* from dg1 a,dg2 b left join (select top 1 * from dg3 )c on b.id = c.id left join dg4 d on c.id = d.id where a.id=b.id order by a.id desc

這個意思?
------解决方案--------------------
select distinct a.*,b.*,c.*,d.* --加个distinct
from dg1 a,dg2 b,dg3 c,dg4 d
where a.id=b.id and b.id=c.id and c.id=d.id
order by a.id desc
------解决方案--------------------
yrwx001() ( ) 信誉:100 2007-08-10 11:03:52 得分: 0


select a.*,b.*,c.*,d.* from dg1 a,dg2 b left join (select top 1 * from dg3 )c on b.id = c.id left join dg4 d on c.id = d.id where a.id=b.id order by a.id desc

這個意思?


---------
你這樣寫不行的,select top 1 * from dg3 ,這樣始終為一條記錄
------解决方案--------------------
很多时候用distinct 需要转换数据类型... 而且LZ的需求也不明确
------解决方案--------------------
distinct,应该有用~
除非不是重复的纪录~
------解决方案--------------------
JF