MysQL - выбрать все из таблицы, если - PullRequest
0 голосов
/ 06 января 2011

У меня (хорошая) таблица 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  
...

До сих пор мне не удавалось самостоятельно присоединиться к одному столу, но я думаю, это должно быть осуществимо. (Я бы хотел избежать нескольких запросов)

Спасибо заранее

1 Ответ

0 голосов
/ 06 января 2011

Я думаю, вы говорите об изменении данных? Если это так, см. Здесь: http://en.wikibooks.org/wiki/MySQL/Pivot_table и здесь: http://dev.mysql.com/tech-resources/articles/wizard/print_version.html

...