如何在没有任何子查询的情况下重写SQL查询?

时间:2016-11-18 03:13:09

标签: sql database oracle database-design relational-database

如何在不使用SQL中的任何子查询的情况下重写此查询? 我不太熟悉如何做到这一点,但我认为这是通过使用“加入”来完成的。

SELECT title
FROM Movies Old
Where year < ANY
  (SELECT year
  FROM Movies
  WHERE title = Old. title
  );

(注意:这来自关系电影(标题,年份,长度,流派,工作室名称,制作人C#))

1 个答案:

答案 0 :(得分:2)

要使用连接从字面上重写当前查询,您可以尝试:

SELECT m1.title
FROM Movies m1
INNER JOIN Movies m2
    ON m1.title = m2.title AND
       m1.year < m2.year

但如果你真正想要的是找到不止一次出现的电影片头,那么当不只是使用GROUP BY查询时:

SELECT title
FROM Movies
GROUP BY title
HAVING COUNT(*) > 1