mysql - 初学者 : Can't Order my WHERE Statements Properly with Subselect MIN?

标签 mysql sql mysql-workbench

出于某种原因,我无法让此查询返回任何内容。

SELECT 
     film.title, 
     film.length 
FROM moviedb.film, moviedb.`language` 
WHERE film.length=(SELECT 
                         MIN(length) 
                   FROM moviedb.film) 
AND film.language_id=`language`.language_id 
AND `language`.`name`='French' 
AND film.rating='R';

因此,我想返回 1 行的两列...具有“R”评级的最短的法国电影。我在这里错过了什么吗?我已经挠头一个小时了。

最佳答案

您还需要在子查询中指定语言和等级,以获取其中最短的电影:

SELECT 
     film.title, 
     film.length 
FROM moviedb.film f1 JOIN moviedb.`language`
     ON  film.language_id = `language`.language_id 
WHERE film.length = (SELECT MIN(length) 
                     FROM moviedb.film f2
                     WHERE f1.language_id = f2.language_id
                       AND f1.rating = f2.rating) 
AND `language`.`name`='French' 
AND film.rating='R';

关于mysql - 初学者 : Can't Order my WHERE Statements Properly with Subselect MIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28448882/

相关文章:

sql - Mysql基于行数据的跨模式查询

带有 CURSOR 和 FETCH 的 MYSQL 变量

mysql - "groups"在此位置没有有效输入

mysql - MySQL Workbench 中的正向工程输出错误 1064

php - 将多个输入值存储在数据库的单个字段中并单独检索

sql - 使用 R 变量进行 SQL 查询

java - 在 android 中使用 webservice 响应对象

MySQL:如何将 SQL_CALC_FOUND_ROWS 与 LIMIT 一起使用并同时获取列的 SUM?

mysql - 使用现有数据将数据从 csv 加载到表中

mysql - 将空字符作为空字符串导入 CSV 数据库