Auge: zwei Bedingungen aus der selben Mysql Tabelle

Beitrag lesen

Hallo

Folgende Tabelle habe ich

table1

id ! titel ! city ! country 1  ! inhalt !  1   !  3 2  ! inhalt !  2   !  3 3  ! inhalt !  4   !  3

table2

id ! titel 1  ! berlin 2  ! koeln 3  ! germany 4  ! munich

Alle Datensätze sind Städte, bis auf einen, der ein Land bezeichnet (wenn es denn bei diesem Datenbestand bleibt). Das passt nicht zusammen. Insbesondere lässt sich nicht zuverlässig ermitteln, welcher der Datensätze ein Land und welcher eine Stadt bezeichnet.

Erstelle stattdessen eine dritte Tabelle, die die Länder enthält und verweise aus der Städtetabelle auf die ID des Landes. Die Spalte country fliegt dafür aus table1 raus, weil diese Beziehung zwischen table2 und table3 hergestellt wird.

table1

id ! titel  ! city 1  ! inhalt ! 1 2  ! inhalt ! 2 3  ! inhalt ! 4

table2

id ! titel  ! land 1  ! berlin ! 1 2  ! koeln  ! 1 3  ! munich ! 1 4  ! paris  ! 2

table3

id ! titel 1  ! germany 2  ! france

Das Ziel ist

id ! titel  ! city   ! country 1  ! inhalt ! berlin ! germany 2  ! inhalt ! koeln  ! germany 3  ! inhalt ! munich ! germany

-- aus der hohlen Hand und daher ungetestet
SELECT
table1.id,
table1.titel,
table2.titel AS city,
table3.country
FROM table3
  INNER JOIN (table1
    INNER JOIN table2
      ON table1.city = table2.id)
    ON table3.id = table2.land;

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war. Terry Pratchett, "Wachen! Wachen!" ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}