SQL-запрос для извлечения записей формы, где каждое значение представляет собой отдельную строку - PullRequest
0 голосов
/ 02 июня 2011

У меня есть модели для пользовательской формы следующим образом:

Form
  id
  title

FormField
  id
  type
  name
  label

FormEntry
  id
  form_id
  date

FormFieldEntry
  id
  form_entry_id
  form_field_id
  value

Я пытаюсь сформулировать SQL-запрос в форме, в котором метки FormField будут иметь имена столбцов, а FormFieldEntry - значения.

1 Ответ

1 голос
/ 02 июня 2011

Единственный способ выполнить то, что вы ищете, это использовать динамический SQL. Вы должны собрать строку оператора SQL в коде, запросив имена столбцов и отправить ее в базу данных. Результирующий оператор SQL, который вы создаете, может выглядеть примерно так:

Select FFE.form_entry_id
    , Min( Case When FF.name = 'Foo' Then FFE.value End ) As `Foo`
    , Min( Case When FF.name = 'Bar' Then FFE.value End ) As `Bar`
    , ...
From FormFieldEntry As FFE
    Join FormField As FF
        On FF.id = FFE.form_field_id
Group By FFE.form_entry_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...