mysql - 合并 2 个 "strange"表中的数据

标签 mysql database mysql-workbench

具有以下架构

(ER of DataBase) 我正在尝试创建一个查询

  1. 将显示标题(电影.标题)以及每部电影的类型(movie_Genres.movie_genre) 对于每部电影..

  2. (a)特定时间段内(例如 2-3 天)出现过的内容。我们可以从Tickets 中获取这些天数.ticket_date) (b) 由男性顾客 (Customer.customer_sec) 和 (c) 这些客户的评分超过 4 (erated_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`;

此外,我认为我会遇到麻烦,因为一部电影可以有多个类型,而且我不希望同一部电影在我的结果中出现双线。

我们将认真对待任何帮助!

最佳答案

使用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')
)

我不知道您的数据库架构,但这应该能让您大致了解一种基于门票移动收视率的排序方式? 1 张票应该有 1 个电影 ID 和 1 个顾客,因此这种关系很容易弄清楚

关于mysql - 合并 2 个 "strange"表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35261792/

相关文章:

php - AND 和 OR 子句的组合

javascript - 将 MySQL 查询结果传递给 Django 中的 Javascript/Jquery

database - Django:使用平均达到指定数字的随机整数字段值创建模型实例

mysql - 配置数据 - JSON 存储在表中与单个字段中

mysql - 从 SQL Server 迁移到 MySQL

mysql - 为什么 MySQL 给出错误 "Not allowed to return a result set from a function"?

mysql - 使用主键作为多个表的外键 -PHPMyAdmin

MySQL - 需要 SSL 但服务器不支持它

mysql - 正向工程mysql外键

php - MYSQL IN 语句语法不起作用