2

プロジェクトで結合を使用する必要がありますが、使用方法を忘れてしまいました。今は頭が混乱しているだけで、よくわかりません。

5 つのテーブルがあり、すべてを結合する必要があります。

categories - id, name
movies_categories - movie_id, category_id
movies - id, title, description, release_date, cover_image
users - id, username, password
user_movies - user_id, movie_id, favorite, review, watch_date, rating

ご覧のとおり、プロジェクトは映画関連であり、user_movies にはユーザーが視聴したすべての映画が含まれています。私がする必要があるのは、特定のユーザーが視聴したすべての映画を取得することです。したがって、各映画のすべての映画情報、ユーザー名 (ユーザーから必要な情報はほぼすべて)、および user_movies の列の一部 (最初の 2 つを除くすべて) が必要です。また、各映画のすべてのカテゴリを 1 つの "変数" に結合する必要があります。GROUP_CONCAT() を使用してそれを行うことができると思います。以前に行ったことがあります。

それはトリッキーな作業です。私は本当にこれを理解する必要があります。誰かが私を助けることができれば、私はそれを感謝します.

4

1 に答える 1

5

テーブル スキーマ (テーブル スクリプトの作成) を提供した場合、sqlfiddle でクエリをテストできたのでテストできませんでしたが、このクエリが必要なものだと思います。

select u.username, u.password
     , um.user_id, um.movie_id, um.favorite
     , um.review, um.watch_date, um.rating 
     , m.movie_title, m.description, m.release_date, m.cover_image
     , mc.category_id
     , group_concat(distinct c.name) as movie_categorynames
from user_movies um
inner join users u on u.id = um.user_id
inner join movies m on m.id = um.movie_id
inner join movies_categories mc on mc.movie_id = um.movie_id
inner join categories c on c.id = mc.category_id
where um.user_id=1
group by um.user_id



USERNAME    PASSWORD    USER_ID MOVIE_ID    FAVORITE    REVIEW  WATCH_DATE  RATING  MOVIE_TITLE DESCRIPTION RELEASE_DATE    COVER_IMAGE CATEGORY_ID MOVIE_CATEGORYNAMES
nike    5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8    1   3   0   This is my movie review!    51351   7   It's Kind of a Funny Story  A clinically depressed teenager gets a new start after he checks himself into an adult psychiatric ward.    2010    8d27232902780886db032afb8d4883a7.jpg    5   Comedy,Drama
于 2012-04-20T18:44:34.807 に答える