DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Bernhard Elbl Artikel Drucken
        
Joins - Tabellenverknüpfungen in SQL

Joins geben uns die Möglichkeit, Tabellen miteinander zu verknüpfen und dabei Daten von anderen Tabellen in unsere fiktive Tabelle zu ziehen. Doch fürs erste stiften Sie erst einmal Verwirrung. Ein JOIN ist eben nicht gleich JOIN. Es gibt verschiedene Arten. Hier werden mit Begriffen um sich geworfen, wie z.B. JOIN, INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN usw...

Was ist ein INNER JOIN?
Sehen wir uns das ganze an einen einfachen Beispiel an. Ich verwende die "Northwind"-DB.
SELECT * FROM Customers c
INNER JOIN Orders o ON c.CustomerID = o.CustomerID
Beide Tables, Customers (c = Abkürzung) und Orders, sind mit der Spalte CustomerID verknüpft. Bei diesem INNER JOIN werden alle Zeilen der Tables Customers und Orders angezeigt, DIE sich über CustomerID verknüpfen lassen.
Also ist dieser INNER JOIN, das selbe wie...
SELECT * from Customers c, Orders o
WHERE c.CustomerID = o.CustomerID

Was ist aber jetzt ein LEFT OUTER JOIN oder RIGHT OUTER JOIN?
Das LEFT steht für die linke Tabelle. Die linke Tabelle ist immer die nach FROM ... also
SELECT * from Customers
Customer ist die linke Tabelle = LEFT
RIGHT OUTER JOIN Orders
Order ist die rechte Tabelle = RIGHT
Jetzt bleibt immer noch das OUTER übrig!
Bei INNER JOIN werden nur die Zeilen der Tabellen angezeigt, welche der Verknüpfungsbedingung entsprechen. Bei einem RIGHT OUTER JOIN ist das Ergebnis; alle Zeilen der rechten Tabelle und nur die Zeilen der linken Tabelle, die der Verknüpfungsbedingung entsprechen. Die Felder der rechten Tabelle, die keine Verknüpfung haben, werden mit dem symbolischen Inhalt "NULL" dargestellt.
Der FULL OUTER JOIN zeigt alle Zeilen beider Tabellen, auch die, die dieVerknüpfungsbedingung nicht erfüllen.

Daraus resultiert:
bei INNER JOIN, ist RIGHT oder LEFT bedeutungslos, da nur die Zeilen der Tabellen, die der Verknüpfungsbedingung entsprechen angezeigt werden
bei OUTER JOIN können AUCH Zeilen einer Tabelle angezeigt werden, die eigentlich nicht mit einer anderen Tabelle verknüpft sind. Bei RIGHT sind das alle Zeilen der rechten Tabelle usw.

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine Links vorhanden

  Erfasst am: 14.09.2001
  Gültig bis: 14.10.2001
551 Ratings
Bewertung: 81,6%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG