出于某种原因,我无法让此查询返回任何内容。
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/