2016-11-16 8 views
0

У меня есть две таблицы в MySQL, одна из которых содержит одно значение в каждой строке, а другая - те же значения, но все они объединены в одну строку. Так, например:Значения MYSQL Group_Concat в одном поле, но содержат несколько строк

Table1:

Column1 
a 
b 

Table2:

Column1 
a,b 

Я хотел бы сделать таблицу отображения на основе офф таблицы 1, так что я могу сделать присоединиться на них. В результате я ищу бы это:

Column1 | Column2 
a  | a,b 
b  | a,b 

Я попытался это:

SELECT Column1, GROUP_CONCAT(DISTINCT Column1) AS Column2 
FROM Table1 

Но он просто возвращает одну строку:

Column1 | Column2 
a  | a,b 

Я также попытался добавления группа по разделу:

SELECT Column1, GROUP_CONCAT(DISTINCT Column1) AS Column2 
FROM Table1 
GROUP BY Column1 

Это возвращает каждую строку, но не объединяет поля в столбец2:

Column1 | Column2 
a  | a 
b  | b 

Есть ли способ решить эту проблему? Я ценю помощь!

ответ

1

Вам необходимо присоединиться к таблице с подзапросом, который возвращает сцепленное значение.

SELECT t1.Column1, g.c 
FROM Table1 AS t1 
CROSS JOIN (
    SELECT GROUP_CONCAT(Column1) AS c 
    FROM Table1) AS g 
+0

Это сделало трюк! Я попробовал подзапросы, но я не знал о CROSS JOIN. Благодаря! – Jason247