输入两个表格TABLE A
和TABLE B
TABLE A TABLE B
A_ID | A A_ID | B
1 | a 1 | b
2 | a1 1 | b1
3 | a2 2 | b2
期望输出TABLE C
TABLE C
A_ID | A | C
1 | a | b,b1 <--- Concat all rows in TABLE B with ','
2 | a1 | b2
3 | a2 | NULL <--- NULL if no matched A_ID in TABLE B
C列找到所有匹配的A_ID并将所有B行连接到新的TEXT字段。 这可以只用MySQL查询吗?
答案 0 :(得分:1)
insert into TABLE_C
SELECT
A1.A_ID,
A1.A,
GROUP_CONCAT(B1.B) as 'C'
FROM `TABLE_A` A1
LEFT JOIN `TABLE_B` B1
ON A1.A_ID=B1.A_ID
GROUP BY A1.A_ID;
在sql上面的左连接有助于从两个表中得到公共匹配(相关)行&#39; TABLE_A&#39;和&#39; TABLE_B&#39; group by id有助于获取不匹配的行(彼此不相关,返回2,a1和3的结果集,null)。 group_concat绑定两列,默认情况下以逗号分隔。如果我们想要一些其他分隔符,那么我们只需要使用group_concat和separator语句。并且还插入select帮助以将结果行插入到新表格中&lt; TABLE_C&#39;当前需要在
上创建