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!