У меня есть 2 таблицы, что я должен получить информацию от и хотел бы получить информацию в одном едином запросе.
Ситуация - это:
table "matches" :
id
team_A_id
team_B_id
table "teams" :
id
name
Цель состоит в том, чтобы получить информацию от таблицы "соответствия" (футбольные матчи) и присоединиться к информации с таблицей "команды". Мне нужно это, потому что у моего поставщика веб-сервиса нет данных XML на моем языке (португальский язык), и таким образом, я должен предложить моему клиенту опцию перевести определенные названия команды в португальский язык, иначе я добавил бы названия команды непосредственно на таблице "соответствий". Проблема состоит в том, что я должен ПРИСОЕДИНИТЬСЯ к этим 2 таблицам с 2 идентификаторами. Я знаю, как к объединяющим таблицам с 1 идентификатором вместе, но не может выяснить, как сделать это с 2 идентификаторами, и поддержание информации от этих 2 команд, вовлеченных в каждое неповрежденное соответствие.
Действительно ли это возможно? Или я должен создать отдельные запросы?
select match.*, teama.name, teamb.name
from matches as match
inner join teams as teama on teama.id = match.team_A_id
inner join teams as teamb on teamb.id = match.team_B_id
будет работать в SQL Server и, предположительно, MySQL тоже.
Включить таблицу команд во второй раз (с другим псевдонимом) и рассматривать запрос как находящийся между тремя таблицами:
SELECT *
FROM matches m
JOIN teams t1 ON m.team_A_id = t1.id
JOIN teams t2 ON m.team_B_id = t2.id
SELECT *
FROM matches m, team t1, team t2
WHERE m.team_A_id = t1.id
AND m.team_B_id = t2.id