SQL таблица присоединяется? - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть два SQL-запроса вверху каждой страницы моего сайта:

$sql_result = mysql_query("SELECT * FROM accounts WHERE id='$user_ID'", $db); 
$rs = mysql_fetch_array($sql_result);

$level  = $rs['level'];
$name   = $rs['name'];  

$sql_result2 = mysql_query("SELECT * FROM members WHERE name='$name'", $db);
$rs2 = mysql_fetch_array($sql_result2); 

if (mysql_num_rows($sql_result2) == 0) {
  header("Location: dead.php");
}

// get data

Сначала он проверяет таблицу счетов, чтобы узнать, есть ли у игрока учетная запись.Если он это делает, он проверяет, есть ли у него игрок из членов.Если запись не найдена, его убили.

Это нормально, как есть?Или я могу ускорить процесс, сделав один запрос?

Я не знаю, как это сделать ..

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Да, это должен быть один запрос. A JOIN здесь довольно прост:

SELECT members.*, accounts.level, accounts.name FROM members
  JOIN accounts ON members.name = accounts.name
 WHERE accounts.id = '$user_ID';

Однако убедитесь, что accounts.name проиндексирован. Альтернативой может быть добавление столбца account_id к members и присоединение к нему, поскольку предположительно accounts.id уже проиндексирован.

0 голосов
/ 04 ноября 2011

Если у вас возникли проблемы с объединением, вы можете использовать «ВЫБРАТЬ. ОТ ГДЕ. =.».Ваш код, вероятно, будет выглядеть примерно так: «ВЫБРАТЬ учетные записи. , участники. ОТ учетных записей, члены ГДЕ счета.Конечно, я предполагаю, что в вашей таблице участников есть столбец идентификаторов.

...