Reputation: 21
Table 1: users
id name
1 name 1
2 name 2
Table 2: user_city
user_id city_id
1 1
1 2
2 1
2 2
Table 3: city
id name_city
1 HCM
2 Ha Noi
3 DA NAng
Sql of me:
select a.*,c.name_city
FROM users as a
INNER JOIN
user_city as b
ON b.user_id = a.id
INNER JOIN city as c
ON c.id = b.city_id
Results:
id name name_city
1 name 1 HCM
2 name 2 Ha Noi
1 name 1 Ha Noi
2 name 2 HCM
I want result is:
Results:
id name name_city
1 name 1 HCM,Ha Noi
2 name 2 HCM,Ha Noi
Upvotes: 0
Views: 102
Reputation: 13425
you can use GROUP_CONCAT
AND GROUP BY
to get the result
SELECT U.id, U.name, GROUP_CONCAT(c.name_city)
FROM users u
join user_city uc
on u.id = uc.user_id
join city c
on uc.city_id = c.id
group by u.id, u.name
Upvotes: 2