Задавайте вопросы, мы ответим
Вы не зашли.
Привет,
Какой-то дурацкий затык на ровном месте, не пойму, что не так:
Неактивен
Этот подзапрос нужно размещать в части перечисления полей (между select и from), а у вас он находится в части from.
MySQL сначала выполняет from подзапрос, помещает результат во временную таблицу, а потом уже делает джойн таблиц.
Неактивен
Ларчик просто открывался.
Неактивен
Bust_Ed написал:
Ларчик просто открывался.
Об этом я вам и писал
Только:
1. Зачем вам LEFT JOIN team AS t2 ON m.team2 = t2.id ?
2. Для удобства чтения алиас обычно пишут после подзапроса, т.е.
(SELECT COUNT( match_id )
FROM match_raw
WHERE match_raw.match_id = m.id) AS results
Неактивен
Ну я это по вашей наводке и сделал, есессьна.
1. У меня в match хранится id команды, а на страницу мне нужно вывести имя команды, которое хранится в team.
2. Спасибо, поправил, у меня это совсем не читабельно было.
Неактивен
Bust_Ed написал:
1. У меня в match хранится id команды, а на страницу мне нужно вывести имя команды, которое хранится в team.
Это понятно. Вопрос в другом - зачем дважды присоединять таблицу team?
LEFT JOIN team AS t1 ON m.team1 = t1.id
LEFT JOIN team AS t2 ON m.team2 = t2.id
Если вы удалите вторую строчку, то результат запроса не изменится.
Неактивен
Ого. РЕально. Зачем я так делал, интересно... Наверное, потому что не подумал? )))
Еще раз спасибо.
Неактивен
Так. У меня там в верхнем запросе не хватало вот этого:
Неактивен
В таком варианте - да.
Только зачем именно left join? Разве может быть матч, в котором не определена одна из команд?
Неактивен
В смысле не определена?
Нет, если есть матч, то гарантировано команды, которые в нем участвуют есть в таблице team
Неактивен
Тогда зачем вы используете LEFT JOIN, а не просто JOIN ?
Посмотрите эту тему http://sqlinfo.ru/forum/viewtopic.php?id=3210
Неактивен
Пошел курить мануал. Спасибо.
Неактивен