SELECT PLAYERS.*, USERS.City FROM PLAYERS, USERS WHERE USERS.City='London' AND PLAYERS.Number = $i
nicht der beste Weg, es zu tun; vielleicht ein LEFT JOIN
, aber es sollte funktionieren. Könnte die Syntax falsch haben.
James
EDIT
ACHTUNG: Dies ist nicht die ideale Lösung. Bitte geben Sie mir eine genauere Abfrage und ich kann eine join
Abfrage für Sie aussortieren.
Nehmen wir Ihren Kommentar in Betracht, schauen wir uns ein anderes Beispiel an. Dies wird PHP verwenden, um eine Liste zu erstellen, die wir mit dem Schlüsselwort MySQL IN
verwenden können.
Stellen Sie zunächst Ihre Frage:
$res1 = mysql_query("SELECT Id from USERS where City='London'");
Dann Schleife durch Ihre Anfrage und setzen jedes Id
Feld nacheinander in ein Komma getrennte Liste:
$player_ids = "";
while($row = mysql_fetch_array($res1))
{
$player_ids .= $row['Id'] . ",";
}
$player_ids = rtrim($player_ids, ",");
Sie sollten jetzt haben eine Liste von IDs wie folgt:
12, 14, 6, 4, 3, 15, ...
Nun ist es in Ihre zweite Abfrage zu setzen:
for($i = 0; $i<something; $i++)
{
$res2 = mysql_query("SELECT Team from PLAYERS WHERE Number=$i
AND Id_Player IN $player_ids");
}
Das hier gegebene Beispiel verbessert werden kann, für sie bestimmten Zweck sind, aber ich versuche es so offen wie möglich zu halten.
Wenn Sie eine Liste von Zeichenketten machen wollen, nicht-IDs oder andere Zahlen, ändern Sie die erste while
Schleife, im Inneren der Leitung zu ersetzen mit
$player_ids .= "'" . $row['Id'] . "',";
Wenn Sie Ihren tatsächlichen Abfrage geben könnte mir benutze ich etwas Besseres; Wie ich oben sagte, ist dies eine generische Art, Dinge zu tun, nicht unbedingt die beste.
Warum möchten Sie zwei Abfragen statt einer machen? Eine Abfrage mit einem Subselect wäre schneller als zwei eigenständige. Können Sie uns auch sagen, welchen Fehler Sie bekommen? – thomaux