在MySql 5.1版本上使用EXCEPT运算符

时间:2014-10-17 13:53:42

标签: mysql sql

我的服务器上有5.1 MySQL版本。我正在尝试执行此查询:

SELECT File_Name
FROM Words_DB
WHERE Word_Name=" . $element . "
EXCEPT 
SELECT File_Name 
FROM Files_DB 
WHERE Display=0

我收到错误:

错误:您的SQL语法出错;查看与MySQL服务器版本对应的手册,以便在第4行“EXCEPT SELECT File_Name FROM Files_DB WHERE Display = 0”附近使用正确的语法

有人可以告诉我如何以其他形式执行此查询?

谢谢你,Max。

2 个答案:

答案 0 :(得分:4)

据我所知,MySQL不支持EXCEPT运算符。试试这个:

SELECT File_Name
FROM Words_DB
WHERE Word_Name=" . $element . "
AND File_Name NOT IN (
  SELECT File_Name 
  FROM Files_DB 
  WHERE Display=0
)

您还可以使用相关的NOT EXISTSLEFT JOIN。由于我不使用MySQL,我不能说哪个表现最好。

答案 1 :(得分:-2)

我认为您可以在以下网站上找到更好的答案: http://www.tutorialspoint.com/sql/sql-except-clause.htm

它说你可以使用除了查询。但是你也可以使用JPW提供的答案代替使用,除了你可以使用NOT IN关键字,它以相同的方式工作。