MYSQL Abfrage aus Vier Tabellen
Russ
- datenbank
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
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
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.GeraeteidDrei Anmerkungen hätte ich noch dazu:
* ist normalerweise keine wirklich gute Idee: hole besser nur die Felder, die Du wirklich haben willst!
Du solltest Deine Felder einheitlich bennen - dazu gehört auch konsequente Einhaltung einmal gewählter Groß- und Kleinschreibung.
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 ^^