如何从行结果中的另一个表列获取结果?

时间:2017-01-03 13:19:16

标签: mysql

我有两张桌子。

地点:[(从,到)(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;

然而,它并没有给我预期的答案。任何提示/帮助将不胜感激。感谢。

1 个答案:

答案 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添加到所选列。