我有一个用于用户构建表单的模型,如下所示:
Form
id
title
FormField
id
type
name
label
FormEntry
id
form_id
date
FormFieldEntry
id
form_entry_id
form_field_id
value
我正在尝试在Form上制定一个SQL查询,该查询将具有FormField标签作为列名和FormFieldEntry的值。
最佳答案
完成您寻求的目标的唯一方法是使用动态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