Frage zu Query
Moritz M.
- php
Hallo zusammen,
ich habe zwei folgende MySQL-Tabellen:
Tabelle 1: Laender
Spalten: ID und Name
In dieser Tabelle stehen einfach Namen von verschiedenen Länder drin. Über die Spalte ID lässt sich ein Land eindeutig identifizieren.
1 Deutschland
2 Niederlande
3 Frankreich
usw...
Tabelle 2: Reisen
Spalten: ID, VonLand, NachLand (+ weitere, aber hier unwichtig)
In dieser Tabelle werden Reisen gespeichert. Diese Tabelle ist per Fremdschlüssel mit der Tabelle Laender verknüpft, in den Spalten VonLand und NachLand stehen daher die IDs der jeweiligen Länder.
Nun möchte ich eine Übersicht über die Reisen ausgeben lassen. Dabei sollen bei VonLand und NachLand aber nicht einfach die IDs der Länder stehen, sondern direkt die Namen ausgegeben werden.
Das habe ich bis jetzt:
SELECT r.ID, laender.Name
FROM reisen as r
LEFT JOIN laender
ON r.VonLand = laender.ID
Damit kriege ich problemlos den Namen des Start-Landes ausgegeben, wie aber bekomme ich nun auch noch den Namen des Ziel-Landes?
Hallo Moritz,
Nun möchte ich eine Übersicht über die Reisen ausgeben lassen. Dabei sollen bei VonLand und NachLand aber nicht einfach die IDs der Länder stehen, sondern direkt die Namen ausgegeben werden.
Das habe ich bis jetzt:
SELECT r.ID, laender.Name
FROM reisen as r
LEFT JOIN laender
ON r.VonLand = laender.IDDamit kriege ich problemlos den Namen des Start-Landes ausgegeben, wie aber bekomme ich nun auch noch den Namen des Ziel-Landes?
mit einem zweiten Join auf die Tabelle laender, die Du dann mit Aliasnamen ansprechen musst, so wie ich das beim Selfjoin beschrieben habe:
SELECT -- Gib mir
r.ID, -- die ID der Reise
sl.Name Startland, -- das Startland und
zl.Name Zielland -- das Zielland
FROM -- aus der Tabelle
reisen r -- Reisen, die als r angesprochen wird
INNER JOIN -- und mit der Tabelle
laender sl -- laender (_s_tart_l_and), angesprochen als sl
ON -- über die Spalten
r.VonLand = sl.ID -- VonLand in der Tabelle r und ID in der Tabelle sl
INNER JOIN -- und erneut mit der Tabelle
laender zl -- laender (_z_iel_l_and), angesprochen als zl
ON -- über die Spalten
r.NachLand = zl.ID -- NachLand in der Tabelle r und ID in der Tabelle zl
-- verknüpft ist.
Auf AS verzichte ich lieber.
Freundliche Grüße
Vinzenz
Super, danke für den Link und deine Hilfe Vinzenz!