我有两张桌子。
地点:[(从,到)(1,2),(2,3)]
站点:[(id,name)(1,南端),(2,北端),(3,中央端)]
我希望我的输出像:
输出表:[(从,到)(南端,北端),(北端,中央端)]
我尝试了以下查询。
select status_step.id, from_step , to_step, status_step.name,
direction from timings inner join stations
on timings.from_id= stations.id GROUP BY stations.id;
然而,它并没有给我预期的答案。任何提示/帮助将不胜感激。感谢。
答案 0 :(得分:2)
你只能加入一次这样的事情:
SELECT MAX(CASE WHEN t.from = s.id THEN s.name END) as `from`,
MAX(CASE WHEN t.to = s.id THEN s.name END) as `to`
FROM stations s
JOIN timings t
ON(s.id IN(t.from,t.to))
GROUP BY t.from,t.to
如果启用了only_full_group_by
,则将t.from,t.to
添加到所选列。