Задавайте вопросы, мы ответим
Вы не зашли.
Есть база данных, хранящая в одной таблице список футбольных команд, в другой - список матчей. Допустим, так:
Таблица команд:
team_id int unsigned not null auto_increment primary key,
title char(60),
в ней значения
1 | Спартак
2 | Арсенал
3 | ЦСКА
Таблица матчей:
match_id int unsigned not null auto_increment primary key,
date char(10) not null check (date like '--/--/----'),
team_id_owners int unsigned not null,
foreign key (team_id_owners) references teams(team_id),
team_id_guests int unsigned not null,
foreign key (team_id_guests) references teams(team_id)
Соответственно в ней
1 | 12/05/2010 | 1 | 2
2 | 14/05/2010 | 3 | 1
необходимо одним запросом вывести информацию о матче, показывающую номер матча, дату, команду хозяев и команду гостей.
По отдельности, с использованием 2-х запросов, всё ясно.
1-й запрос:
select match_id as ID, date as Date, title as OwnersTeam from matches,
teams where teams.team_id = matches.team_id_owners order by matches.match_id;
2-й запрос:
select match_id as ID, date as Date, title as GuestsTeam from matches,
teams where teams.team_id = matches.team_id_guests order by matches.match_id;
Но необходимо эти запросы объединить в один, чтобы информация на выходе выглядела примерно так:
ID | Date | OwnersTeam | GuestsTeam
1 12/05/2010 Спартак Арсенал
2 14/05/2010 ЦСКА Спартак
Заранее спасибо за помощь.
Отредактированно Gregory (24.12.2010 12:41:32)
Неактивен
Точно так же, только нужно написать алиасы имен повторяющихся таблиц,
чтобы не запутаться:
SELECT ... FROM matches, teams t1, teams t2
WHERE t1.team_id = matches.team_id_owners AND t2.team_id = matches.team_id_guests
Неактивен
Спасибо большое! Сначала немного не понял синтаксис использования алиасов, уже было хотел задать очередной вопрос. Потом разобрался, всё заработало.
Ещё раз спасибо.
Отредактированно Gregory (25.12.2010 19:12:58)
Неактивен