SQL JOIN с именами команд из таблицы команд в SQL SERVER - PullRequest
2 голосов
/ 17 апреля 2019

Я хочу показать название команды в расписании матчей, я использую приведенный ниже запрос, но он получает меня и TeamA, и TeamB как одно и то же имя

SELECT m.ID AS MID,  MatchDate,  
t.Name AS TeamName, 'v' AS VS,  
t.Name AS TeamName, Group
  FROM Matches m 
JOIN Team T ON  m.TeamA_ID = t.Id 
JOIN  Team T2 ON m.TeamB_ID = t2.Id 

Как я могу получить правильное название команды на основе TeamA_ID, TeamB_ID

Настольная команда

ID
TeamName
TeamCountry

Таблица совпадений

ID
MatchDate
TeamA_ID
TeamB_ID
Location
Group


ID      TeamName        TeamCountry
1       TeamOne         100
2       TeamTwo         30
3       TeamThree       80
4       TeamFour        90
5       TeamFive        98
6       TeamSix         99
7       TeamSeven       200
8       TeamEight       14


ID      MatchDate       TeamA_ID    TeamB_ID    Location    Group
1       01-01-2019      2           4           L1          A
2       02-01-2019      6           1           L1          A
3       04-01-2019      5           8           L1          B
4       06-01-2019      2           6           L1          B
5       10-01-2019      3           4           L1          C
6       16-01-2019      5           6           L1          C   

Я хочу результат как

ID      Date            TeamName        vs      TeamName    Location    Group
1       01-01-2019      TeamTwo         v       TeamFour        L1          A
2       02-01-2019      TeamSix         v       TeamOne         L1          A
3       04-01-2019      TeamFive        v       TeamEight       L1          B
4       06-01-2019      TeamTwo         v       TeamSix         L1          B
5       10-01-2019      TeamThree       v       TeamFour        L1          C
6       16-01-2019      TeamFive        v       TeamSix         L1          C

Ответы [ 3 ]

2 голосов
/ 17 апреля 2019

Просто простая ошибка (у вас есть t.Name дважды вместо t2.Name и t.Name)

SELECT m.ID AS MID,  MatchDate,  
    t.Name AS TeamName,
    t2.Name AS TeamName,
    ...
1 голос
/ 17 апреля 2019

В вашем выборе вы выбираете t.Name дважды, измените второй на t2.Name.

    SELECT m.ID AS MID,  MatchDate,  
t.Name AS TeamName, 'v' AS VS,  
t2.Name AS TeamName, Group
  FROM Matches m 
JOIN Team T ON  m.TeamA_ID = t.Id 
JOIN  Team T2 ON m.TeamB_ID = t2.Id 
1 голос
/ 17 апреля 2019

ты почти понял.

SELECT  m.ID AS MID,  
        MatchDate,  
        T.Name AS TeamName, 
        'v' AS VS,  
        T2.Name AS TeamName, -- Should be T2.Name
        Group
FROM   Matches m 
JOIN   Team T ON  m.TeamA_ID = T.Id 
JOIN   Team T2 ON m.TeamB_ID = T2.Id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...