2016-11-16 43 views
0

我在MySQL中有兩個表,其中一個在每行中包含一個值,另一個包含相同的值,但它們全部組合成一行。因此,例如:MYSQL Group_Concat值到一個字段,但保持多行

表1:

Column1 
a 
b 

表2:

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 

我也試圖加入group by clause:

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

This返回每一行,但不將字段連接到第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

相關問題