【问题标题】:Query to get column values as column name in mysql query查询以获取列值作为mysql查询中的列名
【发布时间】:2018-07-08 11:03:53
【问题描述】:

我有两张表 Case、Build 和 Result 如下 桌案

......................................
: name  : description  : created_by  :
:.......:..............:.............:
: test1 : hello test1  : user        :
: test2 : hello test2  : user        :
:.......:..............:.............:

表构建

.......................................
:  name  : description  : created_by  :
:........:..............:.............:
: build1 : hello build1 : user        :
: build2 : hello build2 : user        :
:........:..............:.............:

这是我的结果表

case_name   case_description    build_name  status
test1   hello test1 build1  Pass
test2   hello test2 build1  Fail
test1   hello test1 build2  Fail
test2   hello test2 build2  Pass

我需要查询以获取以下格式的结果

....................................................
: case_name : case_description : build1 : build2:
:...........:..................:.........:.........:
:  test1    :   hello test1    :  PASS   :  FAIL   :
:  test2    :   hello test2    :  FAIL   :  PASS   :
:...........:..................:.........:.........:

【问题讨论】:

  • 你为了得到你想要的结果做了什么?
  • 只能有两个构建吗?两者是否总是被标识为“build1”和“build2”
  • 到目前为止你有什么尝试????

标签: sql mysqli mysql-python


【解决方案1】:

这样的事情就可以了;它并不优雅,但可以完成工作:

SELECT case_name, case_description
       MAX(CASE WHEN build_name = 'build1' THEN status ELSE '' END) AS build1,
       MAX(CASE WHEN build_name = 'build2' THEN status ELSE '' END) AS build2
FROM Result
GROUP BY case_name, case_description

如果您有两个以上的构建,您可以适当地添加 MAX 语句(如果您在 Python 脚本中构建此查询,这很容易做到)。正如我所说,这不是优雅的,而是一种快速简便的跨表查询方式。

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 2011-05-09
    • 2020-10-18
    • 2012-02-03
    相关资源
    最近更新 更多