2014-09-04 31 views
0

我有一個問題,我不知道如何解決它。我正在嘗試但仍然沒有成功。 我有3個表:MySQL多個表JOIN,相同的列標題

旅遊

id_tour title 
1   Discovery 
2   Something 

tour_to_country

id_tour id_country 
1   66 
1   35 
1   673 
2   88 
2   91 

國家

id_country title 
1   Country_1 
2   Country_2 
...  ... 
999  Country_999 

我想利用從遊覽表2周之旅,選擇裏面所有的國家每個巡演並顯示他們的名字。

我想選擇每個巡迴賽的所有國家,但巡迴賽應該顯示一次。

這是我已經試過:

SELECT tour.id_tour as tour_id, tour.title as tour_title, country.title as country_title, tour.* FROM tour 
     INNER JOIN tour_to_country ON tour.id_tour = tour_to_country.id_tour 
     INNER JOIN country ON country.id_country = tour_to_country.id_country 
     GROUP BY tour.id_tour 

它給我的旅行團,但我仍然不知道如何採取在同一查詢所有國家。

http://oi59.tinypic.com/1iby4l.jpg

+0

用您想要的結果編輯您的問題的所需數據。 – 2014-09-04 12:21:43

回答

1

GROUP_CONCAT應該爲你做的伎倆。您可以指定排序和分隔符。我認爲這是你想達到的。

SELECT tour.id_tour as tour_id, tour.title as tour_title, GROUP_CONCAT(country.title ORDER BY country.title SEPARATOR ',') as country_title, tour.* FROM tour 
    INNER JOIN tour_to_country ON tour.id_tour = tour_to_country.id_tour 
    INNER JOIN country ON country.id_country = tour_to_country.id_country 
    GROUP BY tour.id_tour 
+0

謝謝。這正是我需要的 – 2014-09-04 12:29:59