0

私はこのように構築された(素敵な)mysqlテーブルを持っています:

Fields            Datas
id (pk)           1         2        3        4       5         6
master_id         1000      1000     1000     2000    2000     2000   ...
master_name       home      home     home     shop    shop     shop   ...
type_data         value    common   client    value   common   client ...
param_a           foo_a     1         0       bar_a     0        1    ...
param_b           foo_b     1         0       bar_b     1        0    ...
param_c           foo_c     0         1       bar_c     0        1    ...
...               ...       ...      ...      ...      ...      ...   ...

これらのデータはすべて、単一のテーブルに埋め込まれています。各データは、3つの「列」セット(値用に1つ、これらが共通の値であるかどうかを識別するために1つ、クライアント値を識別するために1つ)でディスパッチされます。それは私が得た最高のものではありませんが、他の多くのスクリプトはこの構造に依存しています。

私はこのようなsthgが必要です:

SELECT parameters name (eg param_a, param_b..) and their values (eg foo_a, foo_b..)  
WHEN master_id=? AND type_data=(common or client) (eg for values=1 on the 2nd column)

次のような特定のmaster_idのパラメータハッシュを取得するため

param_a => foo_a  
param_b => foo_b  
param_c => foo_c  
...

今まで同じテーブルでセルフジョインすることはできませんでしたが、実現可能だと思います。(いくつかのクエリを実行することは避けたいです)

事前にThx

4

1 に答える 1

0

データのピボットについて話していると思いますか?その場合は、ここを参照してください:http: //en.wikibooks.org/wiki/MySQL/Pivot_tableおよびここを参照してください:http://dev.mysql.com/tech-resources/articles/wizard/print_version.html

于 2011-01-06T04:47:31.497 に答える