我正在寻找一种方法来加入类似于MySQL“使用”的PK上的关系表,以便我可以消除重复的列。
以下是一个例子:
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中,您可以使用using(directorID)而不是ON directorID = directorID
来完成此操作当然我试图这样做而不必手动指定Select MovieHasDirector.movieID,Director。*我希望返回的记录与相同的列重叠。我怎么能这样做?
答案 0 :(得分:3)
您无法在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%'
答案 1 :(得分:1)
我认为最好的方法是手动选择所需的列。
select a.ID, a.directorID, b.name from MovieHasDirector a, Director b
where a.directorID = b.directorID