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 JOIN Abfragen...
und verschachtelten WHERE Bedingungen:
$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.
Ich habe Tabellen mit mehreren tausend Datensätzen. Hierzu wären soweit ich das richtig verstanden habe, die Join Abfragen am effektivsten.
Wie muß diese jedoch aussehen? Für drei Tabellen (bzw. auch gern für n-Tabellen)?
Vielen Dank für deine Unterstützung
Grüße aus Braunschweig
Fabian