Database Reference
In-Depth Information
Zurück zu unserem zusammengesetzten Join. Der Join der venues -Tabelle
mit der cities -Tabelle verlangt beide Fremdschlüssel. Um uns etwas Schreib-
arbeit zu ersparen, können wir für den Tabellennamen einen Alias festlegen,
indem wir ihn direkt auf den Tabellennamen folgen lassen, wobei wir optional
ein AS dazwischen setzen können (also beispielsweise venues v oder venues
AS v ).
SELECT v.venue _ id, v.name, c.name
FROM venues v INNER JOIN cities c
ON v.postal _ code=c.postal _ code AND v.country _ code=c.country _ code;
venue _ id | name | name
----------+------------------+----------
1 | Crystal Ballroom | Portland
Optional können Sie bei PostgreSQL die Spalten festlegen, die nach einer
Insert-Operation zurückgeliefert werden sollen, indem Sie die Query mit einer
RETURNING -Anweisung abschließen.
INSERT INTO venues (name, postal _ code, country _ code)
VALUES ( 'Voodoo Donuts' , '97205' , 'us' ) RETURNING venue _ id;
id
----
2
Das liefert ohne eine zusätzliche Abfrage die neue venue _ id zurück.
Äußere Joins
Neben inneren Joins kann PostgreSQL auch sog. äußere Joins (outer joins)
durchführen. Äußere Joins sind eine Möglichkeit, zwei Tabellen zu ver-
schmelzen, wenn das Ergebnis einer Tabelle immer zurückgegeben werden
muss, unabhängig davon, ob es einen passenden Spaltenwert in der anderen
Tabelle gibt.
Das erklärt man am einfachsten mit einem Beispiel, doch zu diesem Zweck
müssen wir eine neue Tabelle namens events anlegen. Das ist genau die
richtige ÜbungfürSie.Die events -Tabelle soll die folgenden Spalten besit-
zen: eine fortlaufende ( SERIAL ) ganzzahlige event _ id ,einenTitel( title ), An-
fang ( starts )undEnde( ends )(vomTyp timestamp ) und eine venue _ id (ein
venues referenzierender Fremdschlüssel). Ein Schema-Definitionsdiagramm
aller bisher behandelten Tabellen sehen Sie in Abbildung 2, Das Entity-Rela-
tionship-Diagramm (ERD) , auf Seite 19.
Search WWH ::




Custom Search