1

重複する列を排除できるように、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 では、ON directorID = directorID の代わりに using(directorID) を使用してこれを行うことができます。

もちろん、Select MovieHasDirector.movi​​eID, Director.* を手動で指定することなく、これを実行しようとしています。* 返されたレコードが同じ列に重なるようにします。これどうやってするの?

4

2 に答える 2

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%'
于 2013-10-13T22:17:02.697 に答える
1

必要な列を手動で選択するのが最善の方法だと思います。

select a.ID, a.directorID, b.name from MovieHasDirector a, Director b
where a.directorID = b.directorID
于 2013-10-13T22:16:22.253 に答える