Hallo Forum Gemeinde,
leider konnte mir im Archiv und handbuch nicht geholfen werden, so dass ich mein Problem einmal hier posten werde. Für eine Antwort wäre ich sehr dankbar.
Meine Datenbank besteht aus drei Tabellen.
Tabelle_A Tabelle_B Tabelle_C
-stellen_id -stellen_id -ordner_id
-text1 -ordner_id -unternehmen_id
-text2
-text3
Ich würde gern alle Spalten der Tabelle A ausgeben, wenn in Tabelle_C: $ordner_id = ordner_id AND $unternehmen_id = unternehmen_id
Meine Versuche mit WHERE Abfragen:
$sql = "SELECT text1, text2 FROM Tabelle_A
WHERE (
Tabelle_C.unternehmen_id ='$unternehmen_id'
AND Tabelle_C.ordner_id ='$ordner_id'
AND Tabelle_B.ordner_id = Tabelle_C.ordner_id
AND Tabelle_A.stellen_id = Tabelle_B.stellen_id)";
...sind leider gescheitert.
Das Problem habe ich nun mit einer doppelten WHILE Schleife lösen können:
$result = mysql_query("SELECT stellen_id FROM TABELLE X INNER JOIN TABELLE X ON (Tabelle X.ordner_id = Tabelle X.ordner_id) WHERE (Tabelle X.uid ='$UID' AND Tabelle X.ordner_id='$s_ordner_id')");
while ($row = mysql_fetch_array($result))
{ $stellen_id=$row["stellen_id"];
$sql= mysql_query("SELECT TABELLE X.text1, text2, text3 FROM Tabelle X WHERE stellen_id='$stellen_id'");
while ($row = mysql_fetch_array($sql))
{
$text1=$row["text1"];
$text2=$row["text2"];
$text3=$row["text3"];
}
echo $text1...
}
Diese Lösung funktioniert zwar, erscheint mir aber wenig praktikabel und uneffektiv.
Wie muß diese jedoch aussehen? Für drei Tabellen (bzw. auch gern für n-Tabellen)?
Auf mein Posting hatte ich bereits eine Antwort bekommen, leider funktioniert diese Lösung jedoch nicht bei mir. Ist die Abfrage denn so generell richtig?
SELECT Tabelle_A.*
FROM Tabelle_C INNER JOIN (Tabelle_A INNER JOIN Tabelle_B ON Tabelle_A.stellen_id = Tabelle_B.stellen_id) ON Tabelle_C.ordner_id = Tabelle_B.ordner_id
WHERE (((Tabelle_B.unternehmen_id)='$unternehmen_id') AND ((Tabelle_C.ordner_id)='$ordner_id'));
Vielen Dank für deine Hilfe
Grüße aus Braunschweig
Fabian