#php #mysql #join
#php #mysql #Присоединиться
Вопрос:
Мне нужно извлечь данные из 2 таблиц в моей базе данных. Данные, которые я извлекаю из таблицы 2, зависят от результата таблицы 1.
Я не удивляюсь всем этим ОБЪЕДИНЕНИЯМ и тому подобному, поэтому, если бы кто-нибудь мог просто объяснить, какое соединение мне здесь нужно, и как оно будет выглядеть, я был бы благодарен:
$sql_result = mysql_query("SELECT * FROM accounts WHERE id='$val'", $db);
$rs = mysql_fetch_array($sql_result); $name = $rs[name];
$sql_result2 = mysql_query("SELECT * FROM players WHERE name='$name'", $db);
$rs2 = mysql_fetch_array($sql_result2);
Ответ №1:
$sql="SELECT * FROM accounts JOIN players ON accounts.accounts_link_to_player_id_here=players.id WHERE accounts.id='$val'";
Комментарии:
1. Не могли бы вы отметить ответ на вопрос для будущих пользователей Google? Спасибо!
Ответ №2:
Вы можете сделать что-то подобное, в зависимости от структуры таблицы (таблиц):
SELECT * FROM `accounts` INNER JOIN `players` USING (`name`) WHERE `accounts`.`id` = 'value';
Ответ №3:
ВЫБЕРИТЕ * ИЗ accounts
ЛЕВОГО СОЕДИНЕНИЯ players
, ИСПОЛЬЗУЯ ( name
) ГДЕ accounts
. id
= ‘значение’;
Ответ №4:
Вам понадобится запрос, который выглядит следующим образом (это известно в SQL как подвыборка):
«ВЫБЕРИТЕ p. * ИЗ игроков p, ГДЕ имя В ( ВЫБЕРИТЕ n.name СО счетов n , ГДЕ n.id = ‘$val’ ) «
Комментарии:
1. Подвыборка — плохой способ сделать это по нескольким причинам, объединения более чем достаточно.