3

2 つの異なるテーブルのすべての列を ONE として表示する方法は?

MovieDB には、movies と movie_actors の 2 つのテーブルがあります。映画の ID は主キーでidあり、movie_actor外部キーであり、movies_actor.idmovies.id に参照されます。

   TABLE MOVIES
   id/title/director/genre/year_of_release

   TABLE MOVIE_ACTOR
   id/title/actor/age

ユニオンを使用しましたが、ユニオンが同じ数の属性を要求しているため、機能しません。ただし、最初のテーブルには 4 つの列があり、2 番目のテーブルには 3 つしかありません。

一つの表のように表示したい

   id/title/director/genre/year_of_release/actor/age 

何か案は?

4

2 に答える 2

5

テーブルで結合を使用する必要があります。id結合は、movieテーブル内とテーブル内にあると述べた、互いにプライマリ/外部キーである 2 つのフィールド間で行われidますmovie_actor

select m.id,
  a.title,
  m.director,
  m.genre,
  m.year_of_release,
  a.actor,
  a.age
from movies m
inner join movie_actor a
  on m.id = a.id

結合構文に慣れていない場合は、結合について視覚的にわかりやすく説明しています

INNER JOINは、両方のテーブルで一致するレコードのセットを返します。movieテーブル内に一致するレコードがないテーブル内のレコードがあるmove_actor場合は、LEFT JOIN. movie_actorこれは、テーブルにレコードがなくても、すべての映画を返します。

select m.id,
  a.title,
  m.director,
  m.genre,
  m.year_of_release,
  a.actor,
  a.age
from movies m
left join movie_actor a
  on m.id = a.id

両方のクエリのデモで SQL Fiddle を参照してください。

于 2012-12-06T10:44:12.720 に答える
1

次のクエリを使用して、これらのテーブルを結合できます。

SELECT MOVIES.id, title, director, genre, year_of_release, actor, age
    FROM MOVIES INNER JOIN MOVIE_ACTOR ON (MOVIE.id = MOVIE_ACTOR.id)
于 2012-12-06T10:46:18.607 に答える