-1

1 つの主キーを d_id として定義し、他のフィールドを f1 から f25 として定義したテーブル data_table があります。フィールド名が値f_id、field_name、orderとして格納されているfields_nameとして別のテーブルがあります

fields_name テーブルに格納されている field_values として列名を使用して、データテーブルからすべてのデータを取得したいのですが、

f1   f2   f3   f4 
a    b    c    d

私が欲しいもの、

field_name1    field_name1    field_name1    field_name1
a              b              c              d

助けてください.....

4

2 に答える 2

0

わかりません...使用できる列名の名前を変更したい場合AS

SELECT f1 AS "field_name1", f2 AS "field_name2", f3 AS "field_name3" FROM table

編集:

このようなことを試してください:

SELECT f1,f2,f3,f4... FROM data_table LEFT JOIN data_table ON data_table.f1=(SELECT field_name FROM fields_names WHERE a_flag='f1') AND data_table.f2=(SELECT field_name FROM fields_names WHERE a_flag='f2')

于 2012-09-25T14:52:07.267 に答える
0

次のようなことをしたいかもしれません:

select d_id, 
  max(case when field_name = 'Header' then value end) Header,
  max(case when field_name = 'ID No.' then value end) ID_No,
  max(case when field_name = 'Image' then value end) Image,
  max(case when field_name = 'Name' then value end) Name
from
(
  select d_id, f1 value, 'f1' col
  from data_table
  union all
  select d_id, f2 value, 'f2' col
  from data_table
  union all
  select d_id, f3 value, 'f3' col
  from data_table
  union all
  select d_id, f4 value, 'f4' col
  from data_table
) u
inner join fields_name f
  on u.col = f.a_flag
group by d_id

デモで SQL Fiddle を参照してください

于 2012-09-25T14:16:34.363 に答える