Vinzenz Mai: verstehe JOIN nicht

Beitrag lesen

Hallo Rouven,

Nach meiner Kurzankündigung heute Nachmittag habe ich mich tatsächlich mal hingesetzt und was zusammengeschrieben. Es ist im Prinzip ein Kurzbeispiel, an dem einfach die JOIN-Möglichkeiten mal durchgesprochen werden.

Du hast schnelle und gute Arbeit geleistet.

Schaut euch den Artikel mal an und entscheidet, ob da überhaupt was von verwendet werden soll oder was...
http://tsdnet.ts.funpic.de/joins_leicht_gemacht.htm

Ich finde Deinen Artikel besser strukturiert und insgesamt runder als mein Versuch, der temporär unter http://vinzenzmai.vi.funpic.de/tmp/join.htm zu lesen ist. Dein Beispiel ist gut gewählt: die Begründung, warum jeweils in der anderen Tabelle keine passenden Datensätze vorhanden sind, ist verständlich und nicht wie bei mir eher an den Haaren herbeigezogen. Noch runder wäre der Bogen von der Normalisierung zu den Joins, wenn bei der Normalisierung die gleichen Daten aufgedröselt würden, die nachher beim Join wieder zusammengesetzt werden.

Du motivierst zuerst die Aufteilung in verschiedene Tabellen. Auch das gefällt mir, weil man sonst oft zu hören bekommt: "Was soll das, das steht bei mir doch sowieso alles in einer Tabelle. Ich brauch' das nicht!"

Guckt bitte vor allem nochmal in Hinblick auf Allgemeingültigkeit vs. DBMS drüber. Ich habe fast nur Erfahrung mit der DB2 und die frisst so einiges bei JOINs...

In meinem Artikel verwende ich die gleiche Syntax wie Du, meine Beispiele habe ich mit MySQL 4.1.11 und MS SQL Server 2000 durchgetestet. Sogar MS Access dürfte, soweit ich mich erinnere, bis auf den FULL OUTER JOIN alles hinkriegen. Nach Durchlesen der Doku zu PostgreSQL gehe ich davon aus, dass PostgreSQL ebenfalls alle Deine Statements versteht.

Alexander hat auf jeden Fall einen wichtigen Punkt angesprochen, die Verkettung von JOINs. Ein Beispiel dafür kann man in folgendem Archivthread nachlesen. Das gehört auf jeden Fall dazu, und zwar wieder in einer möglichst breit unterstützten Syntax.

Vielleicht wäre es auch eine gute Idee, das Thema auf zwei Artikel aufzuteilen, einen Grundlagenartikel, der den Einstieg in den JOIN enthält, vom Umfang her wie Dein oder mein Artikel, evtl. sogar etwas abgespeckt und einen darauf aufbauenden zweiten Artikel, der sich z.B. mit den JOINs über mehrere Tabellen, Unterschieden in der von verschiedenen DBMS unterstützten Syntax und ähnlichen weiterführenden Aspekten befasst.

Freundliche Grüße

Vinzenz