我有一张标准化表:
`Table: TheMovies`
id | MovieName
---------------------
1 | Zootopia
2 | Moana
3 | Toy Story
`Table: TheGenres`
id | GenreName
---------------------
21 | Action
22 | Animation
23 | Adventure
`Table: mMoviesGenres`
movieID | genreID
---------------------
1 | 21
1 | 23
2 | 22
2 | 23
2 | 21
3 | 23
一切正常,但我需要一个查询,它会根据至少一个MovieID = 1的类型给我提供类似的电影。
你能给我一个SQL查询,所以我有一个基本的想法,能够创建更高级的查询吗?
答案 0 :(得分:1)
要使用另一个表中的数据进行查询,可以使用JOIN子句将两个或多个表连接到一个表中。
SELECT TheMovies.* FROM mMoviesGenres JOIN TheMovies ON mMoviesGenres.MovieID = TheMovies.MovieID WHERE mMoviesGenres.MovieId <> 1 AND mMoviesGenres.GenreID IN (SELECT GenreID FROM mMoviesGenres WHERE MovieID = 1)
答案 1 :(得分:0)
SELECT TheMovies.*
FROM mMoviesGenres
JOIN TheMovies
ON mMoviesGenres.MovieID = TheMovies.MovieID
WHERE
mMoviesGenres.MovieId <> 1
AND mMoviesGenres.GenreID IN (SELECT GenreID FROM mMoviesGenres WHERE MovieID = 1)