感谢您的帮助,我坚持这个问题。 让我解释一下,我有这种表,表1和表2。
表1
-------| id | -------| 100 | 101 | 102 | 103 | 104 | 105 |
表2
-------|---------| id |value | -------|---------| 100 | A | 100 | B | 100 | C | 101 | D | 105 | E | 105 | F |
和
期望的结果:
-------|--------- id |value -------|--------- 100 | A B C 101 | D 102 | 103 | 104 | 105 | E F
答案 0 :(得分:2)
SELECT table1.id, GROUP_CONCAT(table2.value ORDER BY value ASC SEPARATOR ' ') value FROM table1 LEFT JOIN table2 ON table2.id = table1.id GROUP BY table1.id
结果如下:
id value -------------- 100 A B C 101 D 102 NULL 103 NULL 104 NULL 105 E F
如果要删除NULL值
SELECT table1.id, GROUP_CONCAT( COALESCE(table2.value, '') ORDER BY VALUE ASC SEPARATOR ' ' ) VALUE FROM table1 LEFT JOIN table2 ON table2.id = table1.id GROUP BY table1.id
最终结果:
id value -------------- 100 A B C 101 D 102 103 104 105 E F
答案 1 :(得分: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