1

感谢您的帮助,我被困在这个问题上。让我解释一下,我有这种表,Table1 和 Table2。

表格1

--------|
编号 |
--------|
100 |
101 |
102 |
103 |
104 |
105 |

表2

--------|---------|
编号 |价值 |
--------|---------|
100 | 一个 |
100 | 乙|
100 | C |
101 | D |
105 | E |
105 | F |

期望的结果:

--------|---------
id |值    
--------|---------
100 | 美国广播公司    
101 | D
102 |
103 |
104 |
105 | 英孚    
4

2 回答 2

2
选择表 1.id,
GROUP_CONCAT(table2.value ORDER BY value ASC SEPARATOR ' ') value
从表 1
LEFT JOIN table2 ON table2.id = table1.id
GROUP BY table1.id

结果将是这样的:

标识值
--------------
100 ABC
101 D
102 空
103 空
104 空
105英法

如果你想删除 NULL 值

选择
  表 1.id,
  GROUP_CONCAT(
    COALESCE(table2.value, '')
    按值排序 ASC 分隔符 ' '
  ) 价值
从
  表格1
  左连接表2
    ON table2.id = table1.id
GROUP BY table1.id

最后结果:

标识值
--------------
100 ABC
101 D
102     
103     
104     
105英法
于 2013-10-13T05:33:35.463 回答
1

您应该可以使用以下命令执行此操作GROUP_CONCAT

SELECT table2.id, GROUP_CONCAT(table2.value ORDER BY value ASC SEPARATOR ' ') value
FROM table2 
LEFT JOIN table1 ON table1.id = table2.id
GROUP BY table1.id
于 2013-10-12T22:34:44.440 回答