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 个用于识别这些是否是公共值,一个用于识别客户值)。这不是我得到的最好的,但许多其他脚本都依赖于这种结构。

我需要这样的东西:

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  
...

到目前为止,我无法成功地在同一张桌子上自我加入,但我想这应该是可行的。(我想避免做几个查询)

提前谢谢

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 回答