SELECT PLAYERS.*, USERS.City FROM PLAYERS, USERS WHERE USERS.City='London' AND PLAYERS.Number = $i
Не лучший способ сделать это; может быть LEFT JOIN
, но это должно работать. Возможно, синтаксис неправильный.
Джеймс
EDIT
ВНИМАНИЕ: Это не самое идеальное решение. Пожалуйста, дайте мне более конкретный запрос, и я могу отсортировать запрос join
для вас.
Принимая во внимание ваш комментарий, давайте рассмотрим другой пример. Это позволит использовать PHP для создания списка, который мы можем использовать с ключевым словом MySQL IN
.
Сначала сделайте запрос:
$res1 = mysql_query("SELECT Id from USERS where City='London'");
Затем выполните цикл запроса и поместите каждое Id
поле одно за другим в список через запятую:
$player_ids = "";
while($row = mysql_fetch_array($res1))
{
$player_ids .= $row['Id'] . ",";
}
$player_ids = rtrim($player_ids, ",");
Теперь у вас должен быть список идентификаторов, подобных этому:
12, 14, 6, 4, 3, 15, ...
Теперь, чтобы поместить его во второй запрос:
for($i = 0; $i<something; $i++)
{
$res2 = mysql_query("SELECT Team from PLAYERS WHERE Number=$i
AND Id_Player IN $player_ids");
}
Пример, приведенный здесь, может быть улучшен для его конкретной цели, однако я стараюсь держать его как можно более открытым.
Если вы хотите составить список строк, а не идентификаторов или других чисел, измените первый цикл while
, заменив строку внутри него на
$player_ids .= "'" . $row['Id'] . "',";
Если бы вы могли дать мне ваш фактический запрос, который вы используете, я могу придумать что-нибудь получше; как я сказал выше, это более общий способ ведения дел, не обязательно лучший.