【问题标题】:SQL Server equivalent to Using for a JOIN to avoid duplicate columnsSQL Server 相当于使用 JOIN 避免重复列
【发布时间】:2013-10-13 22:04:53
【问题描述】:

我正在寻找一种在类似于 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.movi​​eID, Director。* 我希望返回的记录与相同的列重叠。我该怎么做?

【问题讨论】:

标签: sql sql-server join


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 2023-03-16
      • 2018-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多