MySQL Query для «выравнивания» или сводной таблицы по полям

0

Я работаю с плагином WordPress (formmaker), который сохраняет формы в таблице.

он имеет id, form_id, element_label (идентификатор ввода), element_value (входное значение), group_id (идентификатор представления), date, and ip '

Из другой таблицы я могу получить ассоциированный входной идентификатор и имя ввода

Итак, я строю свой запрос следующим образом...

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, но другие поля имеют нулевое значение...

Любая помощь приветствуется!!

Спасибо

Теги:
pivot-table

1 ответ

1
Лучший ответ

Вы используете группу без функции агрегации, и для этого у вас есть непредсказуемый результат, вы должны использовать (фальшивую) функцию агрегации

  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 и не разрешено в самой последней версии mysql и в большинстве БД.. в этом случае результат для столбца, не связанного с результатом, непредсказуем типично, является первым значением, с которым столкнулся sql двигатель для этих столбцов

  • 0
    Это сработало для меня! Спасибо!
  • 0
    @KiaiFighter хорошо, если мой ответ правильный, отметьте его как принятый ... посмотрите, как здесь meta.stackexchange.com/questions/5234/…
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню