Всем привет. Мне нужно сделать выборку из трех таблиц по определенному правилу. Попробую объяснить понятней. Из таблицы group_10 назовем её gr выбрать всё + нужно к результату добавить всё из таблицы archive_games назовем её ag по правилу (ag.id = gr.g_fcast) + из таблицы teams назовем её t1 добавить столбец src_team_logotype по правилу (t1.team_name = ag.first_team) + из таблицы teams назовем её t2 добавить столбец src_team_logotype по правилу (t2.team_name = ag.second_team) Я пробовал сделать такую выборку : Код (Text): SELECT gr.*, ag.*, t1.src_team_logotype as logo1t, t2.src_team_logotype as logo2t FROM group_10 gr JOIN archive_games ag on (ag.id = gr.g_fcast) JOIN teams t1 on (t1.team_name = ag.first_team) JOIN teams t2 on (t1.team_name = ag.second_team) Но она не работает, подскажите что я делаю не так, и направьте в правильное русло.
Код (Text): $query = " SELECT gr.*, ag.*, t1.src_team_logotype as logo1t, t2.src_team_logotype as logo2t FROM group_10 gr JOIN archive_games ag on (ag.id = gr.g_fcast) JOIN teams t1 on (t1.team_name = ag.first_team) JOIN teams t2 on (t1.team_name = ag.second_team) "; $result = mysql_query($query, $db); Warning: mysql_query() expects parameter 2 to be resource, null given on line 9 (это $result = mysql_query($query, $db) Добавлено спустя 1 минуту 54 секунды: ой, я забыл сделать include('bd.php); Добавлено спустя 14 минут 46 секунд: Запрос вроде работает, но я не могу вывести результат выборки. Пытался разными способами, но все равно пусто. Данные во всех таблицах есть, все названия перепроверил. Код (Text): <?php include('bd.php'); $query = " SELECT gr.*, ag.*, t1.src_team_logotype as logo1t, t2.src_team_logotype as logo2t FROM group_10 gr JOIN archive_games ag on (ag.id = gr.g_fcast) JOIN teams t1 on (t1.team_name = ag.first_team) JOIN teams t2 on (t1.team_name = ag.second_team) "; if (!$result = mysql_query($query, $db)){ echo "<br>Не могу выполнить запрос<br>"; exit(); } else { echo "<br>Запрос выполнен <br>"; } while ($mas = mysql_fetch_row($result)){ foreach ($mas as $field){ echo $field." "; } echo "<br>"; } ?> Выводится только "Запрос выполнен "
ну выполнен, ок. а еще он может в результате иметь НОЛЬ строк. это не считает ошибкой. это значит что по заданному условию не нашлось данных. поэтому запрос выполнен но итерировать нечего.
Ура, я нашел ошибку) JOIN teams t1 on (t1.team_name = ag.first_team) JOIN teams t2 on (t1.team_name = ag.second_team) Поэтому и результат пустой был)