-1

私のテーブルは5つのフィールドで構成されています。

Submission ValueId  1 2 3 4 5
FormId  1 2 3 4 5
SubmissionId  22 or 23 or 24 
FieldName  fullname,Date,ville,
FieldValue 1 Paul  01/10/2013 Bern

私がしたいテーブル:

SELECT FormId, SubmissionId, FieldValue FROM qesnd_rsform_submission_values WHERE      FieldValue = Bern AND FormID='1' ORDER BY SubmissionId ASC"

formidの場合:1
FieldValueの場合:Paul
FieldValueの場合:2013年1月10日
FielValueの場合:Bern

複数選択でリクエストphpMyAdminを作成する方法に問題がありますか?

4

1 に答える 1

0

データが少し正規化されすぎており、フィールドごとに個別の行があるようです。このデータにアクセスするための最良の方法は、フィールド名がどの形式でも繰り返されないと仮定して、集計することだと思います。

select formid, submissionId,
       max(case when fieldName = 'FullName' then fieldvalue end) as FullName,
       max(case when fieldName = 'Date' then fieldvalue end) as DateStr,
       max(case when fieldName = 'ville' then fieldValue end) as Ville
from t
where formid = 1
group by SubmissionId

フィルタの情報を選択する場合は、次のことを試してください。

select *
from (select formid, submissionId,
             max(case when fieldName = 'FullName' then fieldvalue end) as FullName,
             max(case when fieldName = 'Date' then fieldvalue end) as DateStr,
             max(case when fieldName = 'ville' then fieldValue end) as Ville
      from t
      group by SubmissionId
     ) t
 where formid = 1 and FullName = 'Paul' and DateStr = '01/10/2013' and Ville = 'Bern'
于 2013-02-03T16:12:25.890 に答える