2011-01-06 81 views
0

我建立一个像这样的(漂亮)的MySQL表:MYSQL - ALL SELECT FROM表,如果

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提前

回答