2012-01-14 12 views
0

ユーザーテーブルとムービーテーブルがあるので、各ユーザーは1つ以上のムービーを見ることができます。MySqlにユーザーに複数のグループを追加する

ここで、特定の映画を見たすべてのユーザーを検索したいのですが、 MySqlのテーブルはどのように見えるのですか?

答えて

1

これを行うには、3つのテーブルが必要です。多くの映画と同じ映画を見ることができ、多くのユーザーが複数のユーザーが見ることができ

user 
    id 
    name 

movie 
    id 
    title 

ので、多対があります:最初の二つは、彼らは、非常に基本的な形で、このようになり、ユーザーや映画ますそこに多対多関係があります。 MySQLで、このような関係を定義するには、3番目のテーブルを必要としている映画(私はこのuser_moviesと呼ばれていますが、別の名前で行きたいかもしれません)を見ているユーザーを知っていること、結合テーブルと呼ばれる:へ

user_movies 
    user_id 
    movie_id 

映画は、あなたがこのようなクエリを必要とする、スペースボールと呼ばれる見た人知っている:

SELECT u.name FROM user u 
    JOIN user_movies um ON um.user_id = u.id 
    JOIN movie m ON um.movie_id = m.id 
    WHERE m.title = 'Spaceballs' 
+0

優秀な説明 - クエリをしばらくの間、私の悩みの種だった参加して...今DB保存された機能に移動する:) ..私彼は基本的にデータアクセス/解析のためのDBに書かれたDLLを持っているので、弟はMSのものを宣伝し続けます:) – Silvertiger

+0

SQLには多くのタイプの結合があります。ここには基本的なチュートリアルo nそれら:http://www.w3schools.com/sql/sql_join.asp – fivedigit

関連する問題