MySQL Joins

Ich habe einen schönen Artikel über Joins gefunden, der mir zum ersten mal die Sache gut erklären konnte. Bei mir sollte eine Abfrage von zwei normalisierten Tabellen aus einer Anruferliste, die Telefonnummer und der Name des Anrufers ergeben. Bisher habe ich bei solchen Dingen immer ein SELECT aus zwei Tabellen mit einer WHERE-Bedinung bemüht. Der Nachteil dieser Methode ist, das in jeder Datensatz der einen Tabelle der anderen zugeordnet werden muss. Sonst wird ein nicht zuordnenbarer Datensatz ausgeblendet. Bei einer Telefonliste kann es aber durchaus vorkommen, dass ein neuer Anrufer sich meldet, dessen Name noch nicht in der Namenstabelle ist.

SELECT
	anrufe.zeit,
	anrufe.nummer,
	anrufer.name
FROM anrufe, anrufer
WHERE anrufe.nummer = anrufer.nummer;

Abhilfe schaffen kann man hier mit einem LEFT JOIN. Dieser sagt aus das die linke Tabelle in jeden Fall ausgegeben wird und nur durch die rechte (gejointe) Tabelle ergänzt wird.

SELECT
	anrufe.zeit,
	anrufe.nummer,
	anrufer.name
FROM anrufe
LEFT JOIN anrufer
ON anrufe.nummer = anrufer.nummer;

Der Artikel bei selfhtml.org geht noch auch weitere Varianten eines JOINs ein.

Dieser Beitrag wurde unter Allgemein, MySQL abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.