【问题标题】:How to get multiple columns data into the same cell with a SQL query?如何使用 SQL 查询将多列数据放入同一个单元格?
【发布时间】:2019-05-21 20:45:58
【问题描述】:

我需要得到一个 sql 结果,该结果将表中的多列数据获取到结果的单个单元格中。查询会怎样?

假设我有这 2 个表:

表 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
-----------------------

【问题讨论】:

    标签: mysql sql database


    【解决方案1】:

    你可以试试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
    

    【讨论】:

      【解决方案2】:

      该问题的解决方案是调用联接。连接使用某些标识符将多个表合并为一个。在您的问题中,标识符是名称。一个示例解决方案是:

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

      【讨论】:

        【解决方案3】:

        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;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-12
          • 2017-05-03
          • 2021-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多