Спортивный матч MySQL запрос на совместный матч и команды в заданном порядке c - PullRequest
0 голосов
/ 06 апреля 2020

Я хотел бы создать базу данных для спортивных матчей.

Команда может иметь 0 или 1 матч. В матче всегда 2 команды.

Пример данных, которые я должен сохранить:

  • Матч время начала
  • Название команды для A и B
  • Оценка для A и B

Я думал о создании таблицы для match и таблицы для команда . Матч получил время начала и внешние ключи A и B. Команда получила имя и счет.

Теперь мой вопрос / проблема:

Я бы хотел найти название команды и получить такую ​​таблицу:

--------------------------------------------------------------------
Start | SearchedName | SearchedScore | OpponentName | OpponentScore
 ...  | ...          | ...           | ...          | ...

Как я могу это сделать?

1 Ответ

1 голос
/ 06 апреля 2020

Обычно вы присоединяетесь к таблице team дважды.

Предполагая следующую структуру таблицы:

table: "matches"
    id_team_a
    id_team_b
    start_time
    ...

table: "teams"
    id_team
    name

Вы бы go:

select 
    m.*,
    ta.name team_name_a,
    tb.name team_name_b
from matches m
inner join teams ta on ta.id_team = m.id_team_a
inner join teams tb on tb.id_team = m.id_team_b

Если вы хотите обработать это с помощью поиска:

select 
    m.*,
    case when ta.name = @myteam then ta.name else tb.name end search_name,
    case when ta.name = @myteam then tb.name else ta.name end opponent_name
from matches m
inner join teams ta on ta.id_team = m.id_team_a
inner join teams tb on tb.id_team = m.id_team_b
where @myteam in (ta.name, tb.name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...