MySQL INSERT >MySQL UPDATE >MySQL DELETE >MySQL SELECT >MySQL JOIN >

Mit einer JOIN Abfrage lassen sich Daten von mehreren Tabellen mit einem Query abfragen.

Es gibt folgende bekannte Arten von JOINs

  1. LEFT JOIN
  2. RIGHT JOIN
  3. INNER JOIN
  4. FULL JOIN

In der Praxis kommt man gut mit LEFT JOIN oder INNER JOIN zurecht. Alle anderen JOINs benutze ich so gut wie gar nicht.

MySQL LEFT JOIN

SELECT 
t1.col1,
t1.col2,
t2.col1,
t2.col2
FROM table t1 
LEFT JOIN table2 t2 ON t2.id = t1.id
WHERE t1.id = 1;
  • Daten die in t2 nicht vorkommen werden als "null" angezeigt.
  • Kommt mehr als ein Datensatz in t2 vor, wird die komplette Zeile so oft ausgegeben wie Datensätze in t2 vorhanden sind.

MySQL RIGHT JOIN

SELECT 
t1.col1,
t1.col2,
t2.col1,
t2.col2
FROM table t1 
RIGHT JOIN table2 t2 ON t2.id = t1.id
WHERE t1.id = 1;
  • Anders als beim LEFT JOIN werden die Daten die in t1 nicht vorkommen als "null" angezeigt.

MySQL INNER JOIN

SELECT 
t1.col1,
t1.col2,
t2.col1,
t2.col2
FROM table t1 
INNER JOIN table2 t2 ON t2.id = t1.id
WHERE t1.id = 1;
  • Gibt nur Daten aus wenn in t2 Datensätze vorhanden sind.
  • Diese Abfrage eignet sich besonders wenn man sicherstellen möchte, dass sich Daten in beiden Tabellen befinden, ansonsten wird die komplette Zeile weggelassen.

MYSQL FULL JOIN

SELECT 
t1.col1,
t1.col2,
t2.col1,
t2.col2
FROM table t1 
FULL JOIN table2 t2 ON t2.id = t1.id
WHERE t1.id = 1;
  • Kombination aus LEFT und RIGHT JOIN
  • Daten die in t2 nicht vorkommen werden als "null" angezeigt und Daten die in t1 nicht vorkommen werden als "null" angezeigt.