Ich versuche die folgenden beiden Abfragen unter einen Hut zu bringen, mit dem Ziel das Ergebnis anhand der zweiten Abfrage zu sortieren.
Das Problem ist, dass Feld1 in Tabelle1 unique ist, und in Tabelle2 dem Feld2 entspricht, dort aber mehrfach vorkommen kann.
Wenn es in Tabelle2 mehrfach vorkommt will ich den Eintrag mit der grössten id lesen, die in Tabelle2 wiederum unique ist.
Richtig trickreich wird es aber, wenn ich das Ergebnis noch nach Tabelle2->Feld3 sortieren will, da blicke ich nicht mehr durch.
Vorgestellt habe ich mir das etwa so:
Aber da fehlt offensichtlich das LIMIT aus der zweiten Abfrage, sprich er liest die erste Zeile die er findet, statt die mit der grössten id.
Möglicherweise gleiche Feldnamen sind erstmal kein Problem, das kann ich lösen wenn das Hauptproblem mal gelöst ist.
Kann mir jemand auf die Sprünge helfen?
Code:
$query = mysql_query("SELECT * FROM `Tabelle1`");
while($row = mysql_fetch_object($query))
{
$query2 = mysql_query("SELECT * FROM `Tabelle2` WHERE `Feld2` = ".$row->Feld1." ORDER BY `id` DESC LIMIT 0,1");
}
Das Problem ist, dass Feld1 in Tabelle1 unique ist, und in Tabelle2 dem Feld2 entspricht, dort aber mehrfach vorkommen kann.
Wenn es in Tabelle2 mehrfach vorkommt will ich den Eintrag mit der grössten id lesen, die in Tabelle2 wiederum unique ist.
Richtig trickreich wird es aber, wenn ich das Ergebnis noch nach Tabelle2->Feld3 sortieren will, da blicke ich nicht mehr durch.
Vorgestellt habe ich mir das etwa so:
Code:
$query = mysql_query("SELECT a.*, b.* FROM `Tabelle1` AS a LEFT JOIN `Tabelle2` AS b ON a.`Feld1` = b.`Feld2` ORDER BY b.`Feld3`");
Aber da fehlt offensichtlich das LIMIT aus der zweiten Abfrage, sprich er liest die erste Zeile die er findet, statt die mit der grössten id.
Möglicherweise gleiche Feldnamen sind erstmal kein Problem, das kann ich lösen wenn das Hauptproblem mal gelöst ist.
Kann mir jemand auf die Sprünge helfen?