SQL: Erstellen Sie einen vollständigen Datensatz aus 2 Tabellen

Ich habe eine DB-Struktur wie sie ist (zum besseren Verständnis maximal vereinfacht):

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")

Ich möchte für eine bestimmte "entry.id" die Details dieses Eintrags erhalten, d. H. Alle mit diesem Eintrag verknüpften "entry_fields" in einer einzigen SQL-Abfrage.

Ein Beispiel wäre vielleicht besser:

"Felder":

"result"
"output"
"code"
"command"

"entry" enthält:

id : 842
id : 850

"entry_fields" enthält:

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"

Die gewünschte Ausgabe wäre:

| id  | command    | output               | code | result |
| 842 | NULL       | "this is an output"  | 42   | ok     |
| 850 | "print ko" | NULL                 | NULL | ko     |

Ziel ist es, ein "Feld" hinzufügen zu können, ohne etwas an der Tabellenstruktur "Eintrag" zu ändern

Ich habe versucht, etwas wie:

SELECT e.*, (SELECT name FROM fields) FROM entry AS e

aber Postgres beschwert sich:

FEHLER: Mehr als eine Zeile, die von einer als Ausdruck verwendeten Unterabfrage zurückgegeben wird

Hoffe mir kann jemand helfen!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage