Schnell und ohne Aufwand die richtige Treffermenge ermitteln

Teil 2: MySQL und JOINs: Datenbank-Anfragen optimieren

An dieser Stelle kommen der Left Join und der Right Join zum Einsatz. Diese nehmen als Ausgangsmenge immer die linke beziehungsweise rechte Tabelle und selektieren die vorhandenen Datensätze der jeweils anderen hinzu.

SELECT <Inhalte aus Tabelle A und B>
FROM <Tabelle A>
LEFT/RIGHT JOIN <Tabelle B> ON <
gemeinsame Felder>
WHERE <Bedingungen>

Nehmen wir wieder die Formel-1-Beispiel- Tabellen zur Hand: Suchen Sie beispielsweise alle Teams, welche Sie in Ihrer Tabelle f1_team haben und möchten die aktuellen Fahrer hinzu selektieren, dann bietet der Left Join den richtigen Ansatz.

Sie werden sehen, dass dabei auch die beiden Teams "Fantasie-Team 1" und "Flotter Auspuff" angezeigt werden. Zu diesen wird keine Entsprechung in der Fahrer-Tabelle gefunden, sie werden jedoch trotz allem dargestellt. Diese Datensätze erhalten dann für die fehlenden Daten den Wert NULL.

SELECT t.name, f.f_vorname,
f.f_nachname FROM f1_team t
LEFT JOIN f1_fahrer f ON t.name =
f.name

Nehmen Sie beide gleichen Tabellen noch einmal her und möchten zu allen Fahrern die passenden Teams dazuselektieren, können Sie den Right Join verwenden. Dieser gibt Ihnen eine veränderte Datenmenge aus. Sie erhalten nicht nur die 20 aktuellen Fahrer der zehn Teams, sondern auch noch die drei Fahrer "Freddie Flitzer", "Michael Schumacher" und "Roter Blitz", welche aktuell keinen Rennstall mehr besitzen.

SELECT t.name, f.f_vorname,
f.f_nachname FROM f1_team t
RIGHT JOIN f1_fahrer f
ON t.name = f.name

Natürlich könnten Sie aus dieser Abfrage auch einen Left Join machen, wenn Sie die beiden Tabellen entsprechend umdrehen und in der FROM-Abfrage f1_fahrer und in der JOIN-Bedingung das f1_team setzen. Dies ist stark von den Größen der beiden Tabellen abhängig - zusätzliche Tipps zum Aufbau der Abfragen erhalten Sie im letzten Teil des Artikels.

Die beiden Besonderheiten Left Outer Join und Right Outer Join sind nur aus Kompatibilitätsgründen zu ODBC vorhanden, werden jedoch bei MySQL gleichbedeutend mit dem Left beziehungsweise Right Join behandelt.

Natural Join

Ein Natural Join, den es auch in den Variante Left Natural und Right Natural unter MySQL gibt, verknüpft ebenfalls die beiden Tabellen miteinander, wobei alle Einträge verglichen werden, welche die gleichen Spaltenbezeichner besitzen.

Eventuell vorkommende doppelte Einträge werden aus der Ergebnismenge eliminiert. Eine WHERE-Bedingung entfällt beim Natural Join.

SELECT <Inhalte aus Tabelle A und B>
FROM <Tabelle A>
NATURAL JOIN <Tabelle B>

Der Vorteil dieser Methode ist der einfache Aufbau der Join-Bedingung, die Nachteile liegen jedoch auf der Hand: durch den eigenständigen Vergleich der Spalten kostet diese Abfrage mehr Zeit als die anderen Joins.

Außerdem ist die Abfrage durch die fehlende WHERE-Klausel unspezifischer. Die Abfrage nach den Rennteams inklusive Sponsoren kann somit vereinfacht mit einem Natural Join aufgebaut werden.

SELECT t.name, t.jahr,
s.sponsor
FROM f1_team t
NATURAL JOIN
f1_sponsor s

Tabellen verknüpfen

Natürlich ist die Anzahl der Tabellen, die Sie verknüpfen können, nicht auf zwei beschränkt. An dieser Stelle sollten Sie sich vorab überlegen, welches die Ausgangsmenge Ihrer Daten ist und welche Tabellen zur Anreicherung dienen.In diesem Kontext sollten Sie auch auf die bereits oben erläuterten Platzhalter für die einzelnen Tabellen zurückgreifen, denn sonst verlieren Sie bei der Vielzahl der Tabellen schnell den Überblick und die Lust zum Tippen der vollständigen Tabellennamen.Ein einfaches Beispiel für eine Join-Verknüpfung mit mehreren Tabellen ist die Zusammenführung der drei Tabellen Team, Fahrer und Sponsoren, wobei das Team, der Nachname des Fahrers sowie die Sponsoren angezeigt werden sollen.

© Archiv

Ein Natural Join erlaubt die vereinfachte Verknüpfung von zwei Tabellen, ist jedoch zeitintensiver als andere Anfragen.

Mehr lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.