gpt4 book ai didi

mysql - GTFS数据-停止数据

转载 作者:行者123 更新时间:2023-11-29 08:25:58 24 4
gpt4 key购买 nike

目前我对我的 SQL 技能感到有点生疏。我想要实现的是将两个 SQL 查询连接到一个查询中,这基本上可以为我提供有关特定停止的所有信息。

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

    SELECT stop_id, stop_name, stop_lat, stop_lon, zone_id 
FROM stops WHERE stop_id = 97

第二个有点复杂,但在这里找到了我的解决方案,经过一些小改动,它就像我想要的那样。

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!

谢谢!

最佳答案

可以用锤子法来实现:

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

或者加入他们:

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

关于mysql - GTFS数据-停止数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com