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