如何将INTERSECT从SQLite转换为MySQL

时间:2012-01-27 19:24:02

标签: mysql sqlite

我写了一个查询到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,但是我没有得到正确的结果。我可以提一些建议吗?

1 个答案:

答案 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的数据类型不是数字,如果它是整数而不是字符串,则需要删除45周围的引号。