Добрый день.
Есть таблица вида:
Object | Field | Value
1 | foo | ...
1 | bar | ...
1 | baz | ...
2 | foo | ...
2 | bar | ...
2 | qux | ...
3 | ... | ...
...
Можно ли сделать из неё выборку по заранее известному списку
Field-ов (например, только foo, bar, baz, игнорируя qux), развернув при этом в строку, чтобы получилось примерно так:
Object | foo | bar | baz
1 | ... | ... | ...
2 | ... | ... | null
3 | ... | ... | ...
Очевидный вариант с джоинами по понятным причинам мне не нравится. Есть ли ещё какие-нибудь?
SELECT
table.Object,
f1.Value as foo,
f2.Value as bar,
...
FROM table
LEFT JOIN table as f1 ON (f1.Object = table.Object and f1.Name='foo')
LEFT JOIN table as f2 ON (f2.Object = table.Object and f2.Name='bar')