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.

Datenbank-Anfragen optimieren

© Archiv

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

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".