具有以下架构
(DataBase的ER)我正在尝试创建一个查询
Movies.Title)以及每部电影的类型(movie_Genres.movie_genre)。Tickets.ticket_date (b)中获得男性客户(Customer.customer_sec)和(c)的评分超过4 (rated_customerRation)的时间。我可以接近以下查询:
SELECT
`movie_title`, `movie_Genres`.`movie_genre`
FROM
`Movies`
INNER JOIN
`movie_Genres` ON `mg_movie` = `movie_ID`
INNER JOIN
`Rated` ON `rated_movie_ID` = `movie_ID`
WHERE `rated_customerRatio` > 4 AND
UNION
(SELECT
`customer_sex`, `rated_customerRatio`
FROM
`Customer`
/* INNER JOIN
`cinema`.`Rated` ON `Rated`.`rated_customer_tabID` = `Customer`.`customer_tabID`
*/
INNER JOIN
`cinema`.`Tickets` ON `Tickets`.`ticket_customer_tabID`=`Customer`.`customer_tabID`
WHERE
`customer_sex` LIKE 'Male'
/* AND rated_customerRatio > 4 */
AND `Tickets`.`ticket_date` > '2016-02-16')
GROUP BY `movie_title`;我还在想,我会有麻烦,因为一部电影可以有多个类型,我不想要双线,为同一部电影,在我的结果。
任何帮助都会得到认真的问候!
发布于 2016-02-08 03:12:39
使用WHERE movie.ID IN (Select movie.id...)查询具有不寻常的查询关系。也就是说,如果movie.id可以与票相关
WHERE MovieID IN
(
SELECT
MovieID
FROM
MovieTable
LEFT JOIN TICKETS ON MovieID = TICKETS.movieID
LEFT JOIN CUSTOMER ON TICKETS.ID = CUSTOMER.ID
WHERE
CUSTOMER.customer_sex LIKE 'Male'
AND Tickets.ticket_date > '2016-02-16')
)我不知道您的DB模式,但这应该会给您一个粗略的想法,在一种方法上,根据观众的移动票?一张票应该有一个电影ID和一个客户,所以关系是很容易弄清楚的。
https://stackoverflow.com/questions/35261792
复制相似问题