私はこのように構築された(素敵な)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