我有个问题,我不知道怎么解决。我在努力,但还是没有成功。我有三张桌子:
巡演
id_tour title
1 Discovery
2 Somethingtour_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我想从旅游桌上选择两次旅游,选择每一次旅游中的所有国家,并显示他们的名字。
我想从每个旅游中选择所有的国家,但是应该只显示一次。
这就是我尝试过的:
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它给我的旅游,但我仍然不知道如何带所有的国家在同一查询。

发布于 2014-09-04 12:25:13
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_tourhttps://stackoverflow.com/questions/25665302
复制相似问题