由于某种原因,我无法获得此查询以返回任何内容。

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';

10-08 01:13