mysql join with multiple values in one column

十年热恋 提交于 2019-12-07 04:46:57

问题


I need to make a query that creates 3 columns that come from 2 tables which have the following relations:

TABLE 1 has Column ID that relates to TABLE 2 with column ID2

In TABLE 1 there is a column called user In TABLE 2 there is a column called names

There can be 1 unique user but there can be many names associated to that user.

If i do the following i get all data BUT the user column repeats itself for each name it has associated. What i want is for use to appear unique but the names columns appear with all the names associated to the user column but separated by commas, like the following:

select user,names from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id

This will show the users repeated everytime a name appears for that user. what i want is to appear like this:

USER - NAMES
cyrex - pedrox, rambo, zelda
homeboy - carmen, carlos, tom, sandra
jerry - seinfeld, christine
ninja - soloboy

etc....


回答1:


What you are looking for is the GROUP_CONCAT operator.

select user, GROUP_CONCAT(names SEPARATOR ',')
from TABLE1 left join TABLE2 on TABLE1.id = TABLE2.id
group by user


来源:https://stackoverflow.com/questions/4609753/mysql-join-with-multiple-values-in-one-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!