2017-01-03 97 views
1

我有兩個表。如何從行結果中的另一個表列中獲取結果?

位置:[(從,到)(1,2),(2,3)]

監測站:[(ID,名稱)(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; 

但是,它沒有給我預期的答案。任何提示/幫助將不勝感激。謝謝。

回答

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到選定列。

+0

認爲工作沒有任何錯誤完美。謝謝! – Nevermore