2014-11-12 3 views
0

У меня есть SQL таблица называется Games следующим образом:SQL Получение определенного столбца другой, чем просто внешний ключ

CREATE TABLE Games 
(date date NOT NULL, 
ho_t_id varchar(9) NOT NULL, 
v_t_id varchar(9) NOT NULL, 
h_score int, 
v_score int, 

PRIMARY KEY(date, ho_t_id, v_t_id), 
FOREIGN KEY(ho_t_id) REFERENCES Team ON UPDATE CASCADE, 
FOREIGN KEY(v_t_id) REFERENCES Team); 

Как вы можете видеть, она имеет два внешних ключей в таблице под названием Team. Ссылка ho_t_id и v_t_id на первичный ключ таблицы Team, называемый t_id.

Я хотел бы показать все столбцы таблицы Games (*), но заменить ho_t_id на имя команды, которая существует в таблице Team. (В таблице Team содержится столбец с именем Name).

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

ответ

1
SELECT G.*, T1.NAME as T1_NAME, T2.NAME AS T2_NAME 
FROM GAMES G 
INNER JOIN TEAM T1 ON T1.T_ID=G.HO_T_ID 
INNER JOIN TEAM T2 ON T2.T_ID=G.V_T_ID 
1

Вы имеете в виду это ?:

select t.Name, g.allOtherColumns 
from Games g 
inner join (
    select Name, ID 
    from Team 
) t 
ON t.ID = g.v_t_id 
--where .... 
Смежные вопросы