Mysql从一个表中选择动态行值作为列名,从另一个表中选择值

利雅得艾哈迈德

我安排了一个调查,其中一个项目有一些问题。用户必须从公众那里收集给定的项目答案。调查表如

用户表

user_id     user_name
  1          User 1   
  2          User 2

项目表

project_id  project_name
  1           project 1    
  2           project 2

问题表

ques_id  project_id  ques_name
  1         1         Question 1
  2         1         Question 2 
  3         1         Question 3
  4         1         Question 4 

答案表

ans_id  public_id  user_id ques_id  ques_ans
  1         1      1         1     Answer 1
  2         1      1         2     Answer 2 
  3         1      1         3     Answer 3
  4         1      1         4     Answer 4 

现在我想生成一个报告,其中问题表值作为列名与给定的 project_id 匹配,问题答案作为答案表中的值与 ques_id 匹配

而且,她是我的预期输出:

User_Name  public_id  Question 1  Question 2  Question 3  ...
User 1        1         Answer 1   Answer 2    Answer 3   ...

有人建议使用数据透视,但我发现“MySQL 没有对数据透视操作的本机支持”有人可以帮我吗?

利雅得艾哈迈德

最后代码正在运行

SET @sql = NULL;
    SELECT
    GROUP_CONCAT(DISTINCT
    CONCAT(
    'MAX(IF(a.ques_id = ',
    ques_id,
    ', a.ques_ans, NULL)) AS `',
    ques_name,'`'
    )
    ) INTO @sql
     FROM survey_answer inner join survey_question on  survey_answer.ques_id=survey_question.id;

set @sql = CONCAT('select u.user_name ,q.category_id,a.p_code, ' ,@sql,'  FROM `survey_answer` as a
LEFT JOIN `users` as u ON a.user_id = u.user_id
LEFT JOIN `survey_question` as q ON a.ques_id= q.id');
 PREPARE stmt FROM @sql;
 EXECUTE stmt;
 DEALLOCATE PREPARE stmt;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个表中选择行,其中在MYSQL中从另一个表中选择值和顺序

来自分类Dev

根据另一个表中的引用值从一个表中选择值

来自分类Dev

PHP MySQL从一个表中选择ID,从另一个表中选择照片

来自分类Dev

Sql从表中选择但使用另一个表值作为where子句

来自分类Dev

SQL查询以基于另一个表中的列值从一个表中选择

来自分类Dev

Lua-从一个范围(或表)中选择一个随机值,但不包括一个(或另一个)表的值

来自分类Dev

MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

来自分类Dev

MySQL通过比较另一个表中的值从表中选择

来自分类Dev

MySQL通过比较另一个表中的值从表中选择

来自分类Dev

从一个表中选择与SQL的另一个表中的相同值相关联的唯一行对

来自分类Dev

从与同一表中的另一个值匹配的行中选择一个值

来自分类Dev

从一个表中选择数据,该数据取决于mysql中另一个表的值

来自分类Dev

MySQL从一个表中选择并检入另一个表中是否存在相同的值

来自分类Dev

努力从另一个表中选择一个值

来自分类Dev

如何使用JOIN从另一个表中选择一个值

来自分类Dev

如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

来自分类Dev

从一个表中选择另一个不存在的表

来自分类Dev

从一个表中选择,从另一个表中计数

来自分类Dev

根据另一个表的频率从一个表中选择列?

来自分类Dev

mysql插入值,并从另一个表中选择数据

来自分类Dev

根据另一个表的内容在MySQL中选择布尔值

来自分类Dev

如何从行中选择最大值并连接到另一个表

来自分类Dev

MySQL从另一个表中选择sum()

来自分类Dev

SQL从一个表中选择项目,从另一个表中选择条件

来自分类Dev

从一个表中选择数据,从另一个表中选择条件

来自分类Dev

从一个表中选择所有列,从另一个表中选择 1 列

来自分类Dev

动态选择列名(基于另一个表行的值)

来自分类Dev

MySQL查询-从一个表中选择,从另一个表中计数

来自分类Dev

根据另一个表中的关键字从一个表中选择行

Related 相关文章

  1. 1

    从一个表中选择行,其中在MYSQL中从另一个表中选择值和顺序

  2. 2

    根据另一个表中的引用值从一个表中选择值

  3. 3

    PHP MySQL从一个表中选择ID,从另一个表中选择照片

  4. 4

    Sql从表中选择但使用另一个表值作为where子句

  5. 5

    SQL查询以基于另一个表中的列值从一个表中选择

  6. 6

    Lua-从一个范围(或表)中选择一个随机值,但不包括一个(或另一个)表的值

  7. 7

    MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

  8. 8

    MySQL通过比较另一个表中的值从表中选择

  9. 9

    MySQL通过比较另一个表中的值从表中选择

  10. 10

    从一个表中选择与SQL的另一个表中的相同值相关联的唯一行对

  11. 11

    从与同一表中的另一个值匹配的行中选择一个值

  12. 12

    从一个表中选择数据,该数据取决于mysql中另一个表的值

  13. 13

    MySQL从一个表中选择并检入另一个表中是否存在相同的值

  14. 14

    努力从另一个表中选择一个值

  15. 15

    如何使用JOIN从另一个表中选择一个值

  16. 16

    如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

  17. 17

    从一个表中选择另一个不存在的表

  18. 18

    从一个表中选择,从另一个表中计数

  19. 19

    根据另一个表的频率从一个表中选择列?

  20. 20

    mysql插入值,并从另一个表中选择数据

  21. 21

    根据另一个表的内容在MySQL中选择布尔值

  22. 22

    如何从行中选择最大值并连接到另一个表

  23. 23

    MySQL从另一个表中选择sum()

  24. 24

    SQL从一个表中选择项目,从另一个表中选择条件

  25. 25

    从一个表中选择数据,从另一个表中选择条件

  26. 26

    从一个表中选择所有列,从另一个表中选择 1 列

  27. 27

    动态选择列名(基于另一个表行的值)

  28. 28

    MySQL查询-从一个表中选择,从另一个表中计数

  29. 29

    根据另一个表中的关键字从一个表中选择行

热门标签

归档