Кажется, что только поле created_date
связывает записи, из которых вы хотите взять full_name
и email
. Учитывая, что вы могли бы группировать по этой created_date
и использовать агрегатную функцию (например, min
) с учетом только answer
-значения этих записей с определенным field_type
-Value:
select
min(CASE field_type WHEN 'full_name' THEN answer ELSE NULL END) as 'fullname',
min(CASE field_type WHEN 'email' THEN answer ELSE NULL END) as 'email'
FROM `ds_tbl_event_question` q
LEFT JOIN `ds_tbl_event_participant` p ON q.event_id = p.event_id AND p.question_id = q.event_question_id
LEFT JOIN `ds_events` e ON e.event_id = q.event_id
WHERE (
q.field_type = 'email'
OR q.field_type = 'full_name'
)
AND e.store_code = 'H9OCEN'
group by created_date
Обратите внимание, что совокупная функция (здесь: min
) необходимо, поскольку предложение select не должно содержать других атрибутов, кроме тех, которые перечислены в предложении group by, кроме случаев, когда они используются в агрегатной функции.
В предыдущем запросе я попытался как можно меньше адаптировать ваш запрос. На самом деле запрос можно было бы укоротить: левые соединения фактически превращаются в соединение, поскольку вы используете WHERE
- условие с левой стороны; и условие на field_type
является излишним, поскольку case
-statements не рассматривать любые другие значения вообще:
select
min(CASE field_type WHEN 'full_name' THEN answer ELSE NULL END) as 'fullname',
min(CASE field_type WHEN 'email' THEN answer ELSE NULL END) as 'email'
FROM `ds_tbl_event_question` q
JOIN `ds_tbl_event_participant` p ON q.event_id = p.event_id AND p.question_id = q.event_question_id
JOIN `ds_events` e ON e.event_id = q.event_id AND e.store_code = 'H9OCEN'
group by created_date
Там нет ничего, что бы связать ответы вместе, так что это не возможно, чтобы достичь того, чего вы хотите. Вам нужно было бы хранить ответы на вопросы, тогда это было бы возможно. – Shadow
@Shadow, все поля не фиксированы, его динамическое генерирование – SagarPPanchal
Не знаю, что вы подразумеваете под своим комментарием и как это актуально – Shadow