首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GTFS数据-停止数据

GTFS数据-停止数据
EN

Stack Overflow用户
提问于 2013-07-28 21:24:24
回答 1查看 538关注 0票数 0

目前我的SQL技巧有点生疏。我想要实现的是将两个SQL查询连接到一个,这基本上给了我关于特定停止的所有信息。

第一个查询很简单。它需要所有的停止信息。我会说是小菜一碟;)

代码语言:javascript
复制
    SELECT stop_id, stop_name, stop_lat, stop_lon, zone_id 
FROM stops WHERE stop_id = 97

第二种方法比较复杂,但在这里找到了我的解决方案,只要做一些小小的改动,它就像我想要的那样。

代码语言:javascript
复制
select GROUP_CONCAT( distinct rt.route_short_name) as routes
from routes rt, trips tr, stop_times st
where rt.route_id = tr.route_id
and tr.trip_id = st.trip_id
and st.stop_id = 97

现在,我想在第一个查询结果中添加第二个查询结果作为另一列。多亏了这一点,在json_encode之后,我将有一个很好的JSON与所有的信息,我需要!

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-28 23:46:40

你可以用锤子法来做:

代码语言:javascript
复制
SElECT * FROM (
   SELECT stop_id, stop_name, stop_lat, stop_lon, zone_id 
   FROM stops WHERE stop_id = 97
) a INNER JOIN (
   select st.stop_id, GROUP_CONCAT( distinct rt.route_short_name) as routes
   from routes rt, trips tr, stop_times st
   where rt.route_id = tr.route_id
   and tr.trip_id = st.trip_id
   and st.stop_id = 97
) b ON a.stop_id = b.stop_id

或者加入他们:

代码语言:javascript
复制
select stops.stop_id, 
stops.stop_name, 
stops.stop_lat, 
stops.stop_lon, 
stops.zone_id, 
GROUP_CONCAT( distinct rt.route_short_name) as routes
from routes rt, trips tr, stop_times st, stops
where rt.route_id = tr.route_id
and tr.trip_id = st.trip_id
and st.stop_id = stops.stop_id
and st.stop_id = 97
group by st.stop_id
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17913041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档