mysql - 这个查询有什么问题?

标签 mysql sql select

我有 3 个 sql 表调用 category、movies、category_movies。 category 和 movies 表有多对多的关系。这就是我使用 category_movies 表的原因。这是表的结构...

Category : cat_id, cat_name, 
movies : mov_id, mov_name, 
category_movies : cat_id, mov_id

现在我动态地获得了 3 个类别 ID,现在我想单独选择电影的名称,其中属于 3 个 category_id 的类别名称已经获得。

这是我到目前为止尝试过的查询..

SELECT  c.cat_name AS cn, m.mov_name AS mn, m.mov_id 
FROM    category AS c 
        INNER JOIN category_movies AS cm ON cm.cat_id = c.cat_id        
        INNER JOIN movies AS m ON m.mov_id = cs.mov_id
WHERE   c.cat_id IN (2, 5, 7)
GROUP BY c.cat_name, m.mov_name, m.mov_id 
HAVING COUNT(*) >= 3

但是现在可以正常工作了。有人可以告诉我这个查询有什么问题吗?

最佳答案

在此使用 IN 子句

SELECT..
FROM..
WHERE cat_id IN (2, 5, 7)

相同
SELECT..
FROM..
WHERE cat_id = 2 OR
      cat_id = 5 OR
      cat_id = 7

另请注意,它是 INNER JOIN 而不是 INNOR JOIN

但我想,您想要执行RELATIONAL Division(您想要搜索包含您想要查找的所有类别的电影)

SELECT  c.cat_name, m.mov_name, m.mov_id 
FROM    category AS c 
        INNER JOIN movies AS m ON m.cat_id = c.cat_id
        INNER JOIN category_movies AS cm ON cm.mov_id = m.mov_id
WHERE   cat_id IN (2, 5, 7)
GROUP BY c.cat_name, m.mov_name, m.mov_id 
HAVING COUNT(*) >= 3

关于mysql - 这个查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14279642/

相关文章:

mysql - 在 sql 查询中使用命名空间

java - Prepared 语句中未设置参数错误

mysql - 选择不同的值并按同一列(值)排序

css - IE 选择文本居中对齐

MySQL 简单嵌套选择语句

python - Elastic Beanstalk 上的 Django + MySQL - 查询 MySQL 时出错

mysql - 无法在mysql中获取一个月的所有日期

Java - Mysql异常不是unicode

php - MySql 反向 LIKE 子句

php - mysql查询通过根据日期添加总和来从2个表中获取结果