SQL Server эквивалентен использованию для JOIN во избежание дублирования столбцов
Я ищу способ присоединиться к реляционным таблицам на PK, похожим на MySQL, "используя", чтобы я мог устранить повторяющиеся столбцы.
Вот пример:
select *
from MovieHasDirector
join Director on MovieHasDirector.directorID = Director.directorID
where Director.name
like '%Steven Spiel%'
Возврат:
3818 976 976 Steven Spielberg
3962 976 976 Steven Spielberg
4317 976 976 Steven Spielberg
4715 976 976 Steven Spielberg
Когда я действительно хочу:
3818 976 Steven Spielberg
3962 976 Steven Spielberg
4317 976 Steven Spielberg
4715 976 Steven Spielberg
Вы можете увидеть, что столбец дубликата DirectorID отсутствует. В MySQL вы можете сделать это с использованием (directorID) вместо ON DirectorID = directorID
Конечно, я пытаюсь сделать это, не указывая вручную Select MovieHasDirector.movieID, Director. * Я хочу, чтобы возвращаемые записи перекрывали одинаковые столбцы. Как я могу это сделать?
Ответы
Ответ 1
Вы не можете сделать это в SQL Server, вам нужно указать имена столбцов, которые вы хотите вернуть:
select MovieHasDirector.column1, MovieHasDirector.column2, Director.column1
from MovieHasDirector
join Director on MovieHasDirector.directorID = Director.directorID
where Director.name
like '%Steven Spiel%'
Вы можете использовать псевдонимы таблиц, чтобы сделать это немного проще:
select M.column1, M.column2, D.column1
from MovieHasDirector M
join Director D on M.directorID = D.directorID
where D.name
like '%Steven Spiel%'
Ответ 2
Я думаю, что лучший способ - вручную выбрать нужные столбцы.
select a.ID, a.directorID, b.name from MovieHasDirector a, Director b
where a.directorID = b.directorID