我写了一个查询到SQLite,但是现在我必须在MySQL中使用它,但我无法转换INTERSECT
查询是:
SELECT year FROM Movie,Rating
WHERE Movie.mID=Rating.mID AND (stars='4' OR stars='5')
INTERSECT
SELECT year FROM Movie,Rating WHERE Movie.mID=Rating.mID AND (stars='4' OR stars='5')
ORDER BY year ASC
我尝试使用LEFT JOIN的INNER JOIN,但是我没有得到正确的结果。我可以提一些建议吗?
答案 0 :(得分:1)
看起来您只是使用INTERSECT
语句来删除重复项。有一种更简单的方法,即SELECT DISTINCT
:
SELECT DISTINCT year FROM Movie, Rating
WHERE Movie.mID=Rating.mID AND (stars='4' OR stars='5')
ORDER BY year ASC
如果这不起作用,请尝试直接表达联接,而不是WHERE
子句:
SELECT DISTINCT year
FROM Movie NATURAL JOIN Rating ON mID
WHERE (stars='4' OR stars='5')
ORDER BY year ASC
另外,请确保stars
的数据类型不是数字,如果它是整数而不是字符串,则需要删除4
和5
周围的引号。