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

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…