Announcement

Collapse
No announcement yet.

Datenbankabfrage mit selbst Verknüpfung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbankabfrage mit selbst Verknüpfung

    Hallo,

    ich suche ein Rat für eine Abfrage.
    Ich habe eine Tabelle wo die Staaten, Bundesländer, Regionen und die Städte stehen

    Die Tabelle sieht so aus:
    Code:
    CREATE `locations` (
      `location_id` int(11) NOT NULL AUTO_INCREMENT,
      `location_name` varchar(250) NOT NULL,
      `staat` int(11) NOT NULL DEFAULT '0',
      `bundesland` int(11) NOT NULL DEFAULT '0',
      `region` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`location_id`)
    );
    Alle 4 Locationarten stehen in der gleichen Tabelle.
    Damit eine Zuordnung statt findet sind in den Spalten staat, bundesland und regionen jeweils die location_id die dazu passen.

    Jetzt mache ich folgede Abfrage:
    Code:
    SELECT l1.location_name AS staat_name, l2.location_name AS bundesland_name, l3.location_name AS region_name, l4.location_name AS stadt_name 
    FROM locations AS l1, locations AS l2, locations AS l3, locations AS l4 
    WHERE l1.location_id=l2.staat AND l2.location_id=l3.bundesland AND l3.location_id=l4.region
    Damit bekomme ich eine Liste mit allen Städten, in Welcher Region Bundesland und Staat sie sich befinden:

    Also so:

    Staat --> Bundesland --> Region --> Stadt

    Soweit auch korrekt.

    Mein Problem ist das es aber auch Städte gibt die keinem Bundesland zugeordnet sind, die haben bei mir die pseudo ID 9999999 bekommen.
    Das heißt sie werden nirgends mit zugeordnet.

    Wie bekomme ich die Städte mit rein wo diese pseudo ID drin steht?
    Habe schon mit JOINs probiert in verschieden kombinationen, entweder stürzt mein XAMPP ab weil es zu viele Ergebnisse sind oder kein Ergebnis wird ermittelt.

    Ich Danke euch für Hilfe

    Moci

  • #2
    Hi,

    dann mache doch einen UNION SELECT für die 9999999


    Gruß
    docendo discimus

    Comment


    • #3
      Hallo,

      Stimmt wäre auch noch ein Ansatz. Jetzt muss ich nur noch eine 2. SELECT Anweisung für diese 9999999 finden. Aber heute nimmer, bin gerade etwas Overload

      Moci

      Comment

      Working...
      X