SQL: создать полную запись из 2 таблиц
У меня есть структура БД как есть (максимально упрощена для понимания проблемы):
Table "entry" ("id" integer primary key)
Table "fields" ("name" varchar primary key, and others)
Table "entry_fields" ("entryid" integer primary key, "name" varchar primary key, "value")
Я хотел бы получить для данного "entry.id" детали этой записи, т.е. все поля "entry_fields", связанные с этой записью, в одном запросе SQL.
Пример может быть лучше, возможно:
«полей»:
"result"
"output"
"code"
"command"
«запись» содержит:
id : 842
id : 850
"entry_fields" содержит:
entryid : 842, name : "result", value : "ok"
entryid : 842, name : "output", value : "this is an output"
entryid : 842, name : "code", value : "42"
entryid : 850, name : "result", value : "ko"
entryid : 850, name : "command", value : "print ko"
Требуемый результат будет:
| id | command | output | code | result |
| 842 | NULL | "this is an output" | 42 | ok |
| 850 | "print ko" | NULL | NULL | ko |
Цель состоит в том, чтобы иметь возможность добавлять «поле», не меняя ничего в структуре таблицы «запись»
Я попробовал что-то вроде:
SELECT e.*, (SELECT name FROM fields) FROM entry AS e
но Постгрес жалуется:
ОШИБКА: более одной строки, возвращенной подзапросом, используемым в качестве выражения
Надеюсь, кто-нибудь может мне помочь!