2015-04-07 46 views
0

嗨,我可以问一些问题,我该如何生成这个经纬度?如何生成不会重复数据的两列

我想这个代码,但它不断重复的纬度,经度值

SELECT h.*, d.* from 
    stdtbl h 
    inner 
    join (
     select std_dtl_id,lat,lng, count(*) total 
     from stdtbl_detail group by std_dtl_id 
    ) d 

    on h.id = d.std_dtl_id 
    inner join stdtbl_detail dt on h.id = dt.std_dtl_id 
    where 
    h.loginid = '1' AND h.stdid='013777' 

我怎么能这样

id   stdid     loginid     std_dtl_id   lat      lng      total 

372   013777     1      372    51.507407     -0.127753     4 

372   013777     1      372    51.507384     -0.127636     4    

372   013777     1      372    51.507332    -0.127839      4 

372   013777     1      372    51.507304     -0.127703     4 


373   013777     1      373    40.764442     -73.923469     4 

373   013777     1      373    40.764416     -73.923329     4 

373   013777     1      373    40.764346     -73.923557     4 

373   013777     1      373    40.764299     -73.923432     4 

这里输出为演示http://sqlfiddle.com/#!9/d6a86/8

预先感谢您。

+1

即输出也重复值是多少? –

+0

尝试使用'独特' –

+0

没关系,不,它没有。 –

回答

2

这应该做什么你问:

select h.*, d.*, f.total 
    from stdtbl h 
     inner join stdtbl_detail d 
     on h.id = d.std_dtl_id 
     inner join 
     (select std_dtl_id, count(*) total from stdtbl_detail group by std_dtl_id) f 
      on f.std_dtl_id = h.id 

,我已经更新您的提琴:http://sqlfiddle.com/#!9/d6a86/25

+0

好,'不需要'group by' –

+0

正确。这是一个早期努力的残余 –

+0

@pala_是啊,我认为这是我想要的:) – jemz

1

与分析,这将是很容易。没有,它仍然不是非常困难。首先,只需连接两个表即可获得大部分所需的输出。

SELECT s.id, s.stdid, s.loginid, d.lat, d.lng 
from stdtbl s 
join stdtbl_detail d 
    on d.std_dtl_id = s.id 
where s.loginid = '1' 
    AND s.stdid = '013777'; 

这让你你到底想要什么少total领域。要获得,只是产生一个行每ID结果并加入到:

SELECT s.id, s.stdid, s.loginid, d.lat, d.lng, a.total 
from stdtbl s 
join stdtbl_detail d 
    on d.std_dtl_id = s.id 
join(
    select std_dtl_id, count(*) total 
    from stdtbl_detail 
    group by std_dtl_id 
) a 
    on a.std_dtl_id = d.std_dtl_id 
where s.loginid = '1' 
    AND s.stdid = '013777'; 

http://sqlfiddle.com/#!9/d6a86/31/0

+0

谢谢我感谢你的帮助... – jemz

相关问题