2017-12-02 9 views
0

これまでに質問したすべての項目を検索していますが、まだ問題があります。SQL 2つのテーブルを結合して重複を削除する

私は2つのテーブル

表のMOVIES

mov_id 
mov_name 
actor_id 

私はそれが

  1. をmov_id示しています一つのテーブルに両方のテーブルに参加したい表のACTOR

    actor_id_2 
    actor_name 
    

    を持っています

  2. mov_name
  3. ACTOR_NAME

私はACTOR_ID = actor_id_2私のコードを除いて同じACTOR_NAMEを3回繰り返しの重複を含む場合JOINを使用しようとしています。

Example

私は、それぞれの方法が失敗し、これを行うための複数の方法を試してみました。どのような方法でこれを行うのが適切かわかりません。

+0

私は理解していません、この例では重複を表示しません.M_Nameは各行ごとに異なり、M_IDに一意です。 1人の俳優が複数の映画で遊ぶことができます。 – user8834780

+0

はい。 Wikipediaによると、Idris Elbaは2017年からの3つの映画すべて(そしてDark Tower)にも影響を与えました。アクターごとに1つの行が必要な場合は、結果をactor_nameでGROUPし、何らかの形でmovie_idとmovie_nameの両方を連結できます。どのように正確にデータベースの種類に依存します。 – SchEma

答えて

3

あなたは、私はあなたの概念を構築しようとするでしょう

select distinct t1.mov_id, t1.mov_name, t2.actor_name from MOVIES t1 inner join ACTOR t2 on t1.actor_id=t2.actor_id_2; 
1

としてクエリを記述し、インナーは、それが両方のテーブル内の値に一致しているレコードを選択するようなテーブルを結合するであろう結合を使用することができます。

適用対象は、主キーと外部キーを使用したリレーショナルデータベースです。

上記のようなシナリオで、複数のテーブルからデータを取得する必要があり、それらが関連している場合はいつでもjoinsが使用されます。

は、今すぐあなたのテーブルとデータに来るあなたはこのtutorial

にその詳細とガイダンスを得ることができ、多くの種類を持って参加します。

Select M.mov_id, M.mov_name, M.actor_name from Movies M 
inner join Actor A on M.actor_id = A.actor_id_2 

予告:onキーワードの後に​​、あなたの要件ごとに最も具体的なデータを取得するために参加するための複数の条件を置くことができます。

関連する問題