SQL查询使用来自其他表的数据

时间:2016-11-29 08:14:06

标签: php mysql sql

我有一张标准化表:

`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查询,所以我有一个基本的想法,能够创建更高级的查询吗?

2 个答案:

答案 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)

详细了解加入:Using Join to Retrieve Data from Multiple Tables

答案 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)