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: 02.08.2024 12:36 h

Wir verwenden Cookies und Dienste von Drittanbietern

Akzeptieren Sie Cookies und Dienste?

 Nein   Ja     mehr Information

Wir nutzen folgende Cookies:

php Session Cookie: PHPSESSID
Wird vom Server gesetzt um die Funktionaität der Kontaktformulare, die Auswahl der Sprache, der Wunschliste und dem Warenkorb zu gewährleisten.
Speicherdauer: Bis Ende der Browsersitzung
Werte: SessionID: 60u4ml8bvo7prhdbrts1r2kil5


Eigenes Cookie: tenerindi_com
Speichert ob Sie Cookies und Dienste akzeptieren und wenn ja, welche Sie akzeptieren.
Speicherdauer: 90 Tage (Bei NEIN nur bis Ende der Browsersitzung)
Werte: AllowCookies: YES / NO - AllowGoogleMaps: YES / NO - AllowYoutube: YES / NO - AllowKalender: YES / NO - AllowMatomo: YES / NO


Matomo Analytics: _pk_id.1.8c15
wird verwendet, um einige Details über den Benutzer zu speichern, wie die eindeutige Besucher-ID
Speicherdauer: 13 Monate

Matomo Analytics: _pk_ses.1.8c15
Kurzzeit-Cookies, die vorübergehend Daten für den Besuch speichern
Speicherdauer: 30 Minuten


Ihre Einstellungen

 Einstellung speichern Schliessen

  Es werden keine dauerhaften Cookies gesetzt und keine Daten an Google gesendet. Sie können allerdings die Landkarte von Google Maps und Streetview nicht nutzen.

  Das Cookie wurde soeben gesetzt.