JOIN

JOIN alleine macht noch keinen Frühling. Mithilfe JOINs lassen sich mehrere Tabellen für ein SELECT verbinden, die Königsdisziplin relationaler Datenbanken.

Sie sind ja angewiesen, die Daten innerhalb der DB so zu speichern, dass diese

und deswegen normalisieren Sie Ihre Datenstruktur.

Damit das Anzeigen nachher wieder menschenlesbar wird, sind Sie angehalten, die verschiedenen getrennten Tabellen wieder zu einem Ganzen zusammenflechten, das man lesen kann/in seinem Skript verwenden will.

Der Code

mySQL JOIN Beispiel
  SELECT
    attribut1,
    attribut2,
    attribut3
  FROM
    tabellename1
  [LEFT, RIGHT, INNER, FULL OUTER] JOIN
    tabellenname2
  ON
    tabellenname1.attribut13 = tabellenname2.attribut13
  WHERE
    …

LEFT/RIGHT JOIN

Mit LEFT JOIN treffen Sie die Aussage, dass die linke, Originaltabelle (Beispiel: tabellename1) die wichtigere ist. Sie hätten gerne Ergebnisse aus der schwachen Tabelle für alle Treffer in der starken.

Beim RIGHT JOIN ist es genau andersrum: die rechte (im Beispiel tabellename2) ist die starke, für alle Datensätze hieraus hätte ich gerne Ergebnisse, wenns Matches durch Fremdschlüssel in tabellenname1 gibt, die bitte auch.

INNER/FULL OUTER JOIN

Ein anderer JOIN-Ansatz verfolgen diese zwei.

INNER JOIN zeigt nur Ergebnisse an, die wirklich in allen gejointen Tabellen Ergebnisse aufbieten können.

FULL OUTER JOIN zeigt alle Ergebnisse an, die Treffer in irgendeiner Tabelle liefern und ist so der Produzent der voluminösesten Ergebnisse.

mySQL JOIN Pro-Tip

Benutze LEFT JOIN

Ich weiss, viele JOINs führen nach Rom.

Eingedenk der normalen Schreibweise, bei der die starke Tabelle links/zuerst in der Abfrage steht und die schwache danach und dass man alle Ergebnisse für die starke will, ist LEFT JOIN eigentlich die beste Wahl.

Nicht, dass es keine Szenarien für die anderen JOINs gäbe (looking at you, INNER JOIN!), doch die no-brains-at-operating-temperature-Haltung oktroiert geradezu LEFT JOINs.

mysql Workshop Übersicht