Tenerindi.com Logo
Loading

MySQL - verbinden zweiter Tabellen per JOIN

Sehr häufig müssen 2 Tabellen miteinander verbunden werden. Denn oft stehen Tabellen mit einander in Verbindung. Zum Beispiel beinhaltet eine Tabelle mit Kundendaten in einer Spalte das Bundesland in dem der Kunde wohnt. Natürlich könnte man jetzt immer dort "Hessen" eintragen. Geschickter ist es aber in dieser Spalte nur eine Nummer zu hinterlegen, die in der Tabelle "Bundesländer" dann mit der id von Hessen verknüpft ist.

Viele werden jetzt sagen: "Hessen ist doch schnell getrippt, warum Tabellen verbinden". Das schöne ist, man kann komplette Datensätze miteinander verbinden, ohne alle Angaben nochmal eintragen zu müssen. Zum Beispiel braucht man dann in einer Tabelle "Rechnungen" nicht mehr alle Kundeninformationen speichern wie z.B. Name, Strasse, plz, ort. Sondern man speichert nur noch die Zahl oder id des Kunden aus der "Kundentabelle". Man spricht hier von Entitäten.

Eingie Varianten sind LEFT JOIN, RIGHT JOIN, oder INNER JOIN. Hier mal 3 Beispiele:

  • SELECT * FROM kunde
    INNER JOIN rechnung ON kunde.id=rechnung.rech_id;

    Bei einem INNER JOIN werden zum Beispiel nur die Daten angezeigt, die in beiden Tabellen übereinstimmen. Also werden in diesem Fall nur Kunden mit einer Rechnung angezeigt.
  • SELECT * FROM kunde
    LEFT JOIN rechnung ON kunde.id=rechnung.rech_id;

    Bei einem LEFT JOIN werden zum Beispiel alle Daten der Linken Tabelle des Joins angezeigt, und wenn in der Rechten Tabelle keine übereinstimmenden Daten vorhanden sind, bleiben diese Spalten dann eben leer. Also werden in diesem Fall alle Kunden angezeigt, ob Sie eine rechnunge haben oder nicht.
  • SELECT * FROM kunde
    RIGHT JOIN rechnung ON kunde.id=rechnung.rech_id;

    Dieses Beispiel macht eigentlich keinen Sinn. Es besagt, daß alle Rechnungen angezeigt werden sollen, auch wenn es für diese Rechnung in der Tabelle Kunden keinen Kunden gibt. Und Rechnungen ohne Kunden machen nun wirklich keinen Sinn. Aber dennoch braucht man diese Funktion. Stellen Sie sich zum Beispiel den Fall vor, daß ein Kunde aus versehen aus der Kundentabelle gelöscht wurde. Mit dieser Funktion kann man jetzt nach Rechnungen suchen, die keinen Kunden haben.

Mehr über Joins finden Sie auf der MySQL-Seite.

Letzte Änderung dieser Information: 12.12.2011 13:09 h
© 2018 tenerindi.com | Impressum und Datenschutz | Kontakt | Glossar | Last Update: 16.10.2023