В последние несколько дней я пытался найти ответ на эту проблему.Пока я не нашел ответа, этот сайт продолжает появляться в моих результатах поиска, поэтому я решил попробовать.Потрясающие параметры форматирования для сообщений.
У меня есть таблица типа:
user_id | form_id | question_id | data_label | data_value
1 1 1 firstName Joe
1 1 2 lastName Smith
1 1 3 phone 5554443333
2 1 1 firstName Sally
2 1 2 lastName Jones
2 1 3 phone 3334445555
, которую я хочу превратить в:
user_id | firstName | lastName | phone
1 Joe Smith 5554443333
2 Sally Jones 3334445555
Я могу найти пример того, каксделать это.Я их не очень хорошо понимаю, но они там.Моя уникальная проблема вступает в силу, когда эта единственная таблица содержит данные, введенные из различных форм с любым возможным числом полей.Итак, у меня может быть таблица с:
user_id | form_id | question_id | data_label | data_value
1 1 1 firstName Joe
1 1 2 lastName Smith
1 1 3 phone 5554443333
2 1 1 firstName Sally
2 1 2 lastName Jones
2 1 3 phone 3334445555
3 2 1 fav_color red
3 2 2 fav_animal eagle
4 2 1 fav_color blue
4 2 2 fav_animal dog
Затем я передам form_id в качестве параметра, соберу все записи из этой формы, сгруппированные пользователями (все они должны иметь одинаковые метки с разными значениями)и затем отобразить эти данные как:
... когда form_id = 1, отчет выглядит так:
user_id | firstName | lastName | phone
1 Joe Smith 5554443333
2 Sally Jones 3334445555
... когда form_id = 2, отчет выглядит так:
user_id | fav_color | fav_animal
3 red eagle
4 blue dog
Я новичок в продвинутом программировании и процедурах SQL и не могу понять, как это сделать самостоятельно.Мне нужно, чтобы запрос мог обрабатывать любое число / тип полей без необходимости ввода точных возможных имен полей в запросе для каждой формы.Обратите внимание, что первый запрос, приведенный выше, имеет четыре поля, а второй - 3. Таким образом, решение должно быть гибким в этом смысле.
SQL также может быть сгенерирован из языка программирования, так что есть больше вариантов с этим решениемесли это поможет.
Пожалуйста, сообщите мне, если у вас недостаточно информации.