Как выбрать строки из одной таблицы в соответствии с условиями в другой таблице? - PullRequest
0 голосов
/ 15 апреля 2020

Вот как мои таблицы выглядят упрощенно.

Таблица Соответствие имеет match_id , host_id , away_id , а в таблице Team есть team_id , team_name столбцы.

Мне нужно выбрать 'match_id', 'host Название команды »,« Название выездной команды ». Я сделал это, используя несколько представлений, но должно быть что-то более оптимизированное.

(«имя команды хоста» и «имя команды гостей» - это столбцы с team_name в соответствии с * 1023) * team_id )

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Столбец в запросе SQL может сам по себе быть запросом SQL.

select (select t.team_name from Team t where t.team_id = m.host_id) as home_team
      ,(select t.team_name from Team t where t.team_id = m.away_id) as away_team
  from Match m;

См. Это db <> fiddle

0 голосов
/ 15 апреля 2020

Вам необходимо присоединить 2 копии team к match:

select m.match_id, 
       t1.team_name host_team_name, 
       t2.team_name away_team_name 
from match m
inner join team t1 on m.host_id = t1.team_id 
inner join team t2 on m.away_id = t2.team_id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...