Russ: MYSQL Abfrage aus Vier Tabellen

Hallo Ihr lieben,

Ich habe mal wieder ein kleines Problem im laufe meiner PHP/MYSQL Lernphase ^^

Und zwar habe ich eine Tabelle in der Störungen eingetragen werden diese sieht wie Folgt aus.

|Stoerungen|
------------
   sid
   Nutzerid
   geraeteid
   usw
------------

Außerdem die Drei Tabellen

|Nutzerdaten|
-------------
   Nutzerid
   name
   ...
   filialeid
   usw
--------------

|Filialien|
-----------
 Filialeid
 Filiale
-----------

|Geraete|
----------
Geraeteid
Geraet
---------

Die Abfrage versuche ich wiefolgt (Sollten die Tabellennamen hier nicht ganz stimmen... das kann daran liegen das ich sie aus dem Kopf geschrieben habe11):

$abfrage = "SELECT * FROM stoerungen INNER JOIN geraete INNER JOIN (Nutzerdaten INNER JOIN filialien ON Nutzerdaten.Filialeid = filialien.Filialeid) ON stoerung.Nutzerid = Nutzerdaten.Nutzerid ON stoerung.Geraeteid = geraete.geraeteid";

$result = mysql_query($abfrage);
                 echo $result;

while($row = mysql_fetch_array($result))
                 {

}

Die erfahrenen unter euch werden mich vermutlich gleich schlachten *duck*...

Danke für eure Hilfe

MfG
Russ

  1. Mahlzeit,

    Stoerungen
    sid
    Nutzerid
    geraeteid
    usw

    Nutzerdaten
    Nutzerid
    name
    ...
    filialeid
    usw

    Filialien
    Filialeid
    Filiale

    Geraete
    Geraeteid
    Geraet

    $abfrage = "SELECT * FROM stoerungen INNER JOIN geraete INNER JOIN (Nutzerdaten INNER JOIN filialien ON Nutzerdaten.Filialeid = filialien.Filialeid) ON stoerung.Nutzerid = Nutzerdaten.Nutzerid ON stoerung.Geraeteid = geraete.geraeteid";

    Du musst auch bei jedem JOIN angeben, über welche Felder Du joinen willst:

    SELECT *
      FROM Stoerungen
      JOIN Nutzerdaten ON Stoerungen.Nutzerid = Nutzerdaten.Nutzerid
      JOIN Filialien   ON Nutzerdaten.filialeid = Filialeid
      JOIN Geraete     ON Stoerungen.geraeteid = Geraete.Geraeteid

    Drei Anmerkungen hätte ich noch dazu:

    1. * ist normalerweise keine wirklich gute Idee: hole besser nur die Felder, die Du wirklich haben willst!

    2. Du solltest Deine Felder einheitlich bennen - dazu gehört auch konsequente Einhaltung einmal gewählter Groß- und Kleinschreibung.

    3. Heißt es nicht "Filialen"? :-)

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit,

      Stoerungen
      sid
      Nutzerid
      geraeteid
      usw

      Nutzerdaten
      Nutzerid
      name
      ...
      filialeid
      usw

      Filialien
      Filialeid
      Filiale

      Geraete
      Geraeteid
      Geraet

      $abfrage = "SELECT * FROM stoerungen INNER JOIN geraete INNER JOIN (Nutzerdaten INNER JOIN filialien ON Nutzerdaten.Filialeid = filialien.Filialeid) ON stoerung.Nutzerid = Nutzerdaten.Nutzerid ON stoerung.Geraeteid = geraete.geraeteid";

      Du musst auch bei jedem JOIN angeben, über welche Felder Du joinen willst:

      SELECT *
        FROM Stoerungen
        JOIN Nutzerdaten ON Stoerungen.Nutzerid = Nutzerdaten.Nutzerid
        JOIN Filialien   ON Nutzerdaten.filialeid = Filialeid
        JOIN Geraete     ON Stoerungen.geraeteid = Geraete.Geraeteid

      Drei Anmerkungen hätte ich noch dazu:

      1. * ist normalerweise keine wirklich gute Idee: hole besser nur die Felder, die Du wirklich haben willst!

      2. Du solltest Deine Felder einheitlich bennen - dazu gehört auch konsequente Einhaltung einmal gewählter Groß- und Kleinschreibung.

      3. Heißt es nicht "Filialen"? :-)

      MfG,
      EKKi

      hey Ekki

      Danke für deinen Tipp ^^

      und ja es heißt Filialen *gg*

      Ich sollte nicht immer schreiben wie ich Rede ^^