gpt4 book ai didi

MySQL 按字段查询 "flatten"或数据透视表

转载 作者:行者123 更新时间:2023-11-29 10:18:57 25 4
gpt4 key购买 nike

我正在使用一个 WordPress 插件 (formmaker),它将表单提交保存在表格中。

它有idform_idelement_label(输入的ID)、element_value(输入值)、 group_id(提交的 ID)、日期和ip`

从另一个表中,我可以获得输入id输入名称的关联

所以,我正在像这样构建我的查询......

SELECT group_id, form_id,
(case WHEN element_label = 1 THEN `element_value` END) first_name,
(case WHEN element_label = 3 THEN `element_value` END) last_name,
(case WHEN element_label = 4 THEN `element_value` END) school_email,
(case WHEN element_label = 5 THEN `element_value` END) contact_email
FROM `wp_formmaker_submits`

WHERE `form_id` = 12
GROUP BY group_id, form_id

由于某种原因,它适用于first_name,但其他字段为空...

任何帮助将不胜感激!!

谢谢

最佳答案

您使用的 group by 没有聚合函数,因此您会得到不可预测的结果你应该使用(假)聚合函数

  SELECT group_id, form_id,
min((case WHEN element_label = 1 THEN `element_value` END)) first_name,
min((case WHEN element_label = 3 THEN `element_value` END)) last_name,
min((case WHEN element_label = 4 THEN `element_value` END)) school_email,
min((case WHEN element_label = 5 THEN `element_value` END)) contact_email
FROM `wp_formmaker_submits`

WHERE `form_id` = 12
GROUP BY group_id, form_id

在sql中不推荐使用不带聚合功能的group by,并且在最新版本的mysql和大多数DB中不允许使用。在这种情况下,不在聚合结果中的列的结果是不可预测的,通常是 sql 引擎在这些列中遇到的第一个值

关于MySQL 按字段查询 "flatten"或数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com