如何使用sql查询将多列数据放入同一单元格?

ifsvaxew  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(790)

我需要得到一个sql结果,该结果将一个表中的多列数据放入一个单元格中。问得怎么样?
假设我有两张table:
表1:

Name     spec
--------------
James    front
--------------
Henry    front
--------------
Henry    back

表2:

Name     dir
--------------
James    123
--------------
Henry    456

我想得到这个结果:
结果表:

Name     spec     dir
-----------------------
James    front    123
-----------------------
Henry    front    456
         back
-----------------------
46scxncf

46scxncf1#

解决这个问题的方法是调用一个join。联接使用特定的标识符将多个表组合成一个表。在您的问题中,标识符是名称。一个示例解决方案是:

select table1.name, table2.spec, table2.dir
    from table1 inner join table2 on table1.name = table2.name
68de4m5k

68de4m5k2#

example:group_concat 是正确的,但如果要在新行中打印规范列值,请使用“\n”

SELECT a.name, GROUP_CONCAT(spec SEPARATOR '\n'),dir
FROM table1 a INNER JOIN table2 b ON (a.name=b.name)
GROUP BY a.name,dir;
bwntbbo3

bwntbbo33#

你可以试着用 group_concat() 功能

select a.name, group_concat(spec SEPARATOR ' '),dir
    from table1 a inner join table2 b on a.name=b.name
    group by a.name,dir

相关问题