Quick Ref.
Functions
date
number
string
Data Types
date
number
string

Anmerkungen zu Self Joins

Eine Tabelle kann mit sich selbst verbunden werden. Hierzu wird ein Mechanismus benötigt, um die einzelnen Instanzen der Tabelle zu unterscheiden. Es werden zusätzliche Bezeichner oder Alias-Namen in der FROM-Klausel eingeführt. Ein Punkt wird verwendet, um den Bezeichner- und den Attributnamen zu trennen, wenn er in der Anweisung verwendet wird.

Beispiele von Self Joins

Self Join von Route über (num, company)

Die Route-Tabelle kann über das (num, company)-Paar verbunden werden. Das Ergebnis ist eine Liste aller Haltestellen-Paare, die durch die gleiche Buslinie angefahren werden.

SELECT * FROM route R1, route R2

WHERE R1.num=R2.num AND R1.company=R2.company

Dies ist eine große Tabelle mit über 11.000 Einträgen. Die unten dargestellte Liste ist ein Auszug. Es gibt allein 121 Einträge für die Linie LRT 1. Es gibt 11 Haltestellen auf der Nr. 1. Es ist ein Rundstrecke - die erste und letzte Haltestelle sind identisch.

num company pos stop num_1 company_1 pos_1 stop_1
1 LRT 1 134 1 LRT 7 217
1 LRT 1 134 1 LRT 11 134
1 LRT 1 134 1 LRT 10 79
...
1 LRT 2 97 1 LRT 7 217
1 LRT 2 97 1 LRT 11 134
...
2 LRT 9 31 2 LRT 11 217
2 LRT 9 31 2 LRT 1 168
...

Self Join von Route über Haltestelle (stop)

Die Route-Tabelle kann mit sich selbst über die Spalte stop verbunden werden. Das Ergebnis ist eine Liste aller Paare von Buslinien, die an der gleichen Haltestelle halten.

SELECT * FROM route R1, route R2

WHERE R1.stop=R2.stop

Im unten angegebenen Auszug sind einige Einträge für Haltestelle 53, 'Craiglockhart', angegeben.

num company pos stop num_1 company_1 pos_1 stop_1
47 LRT 4 53 47 LRT 4 53
47 LRT 4 53 27 LRT 6 53
47 LRT 4 53 10 LRT 8 53
47 LRT 4 53 45 LRT 7 53
47 LRT 4 53 4 LRT 6 53
10 LRT 8 53 47 LRT 4 53
10 LRT 8 53 27 LRT 6 53
10 LRT 8 53 10 LRT 8 53
...