减号运算符给我在mysql中的错误

use*_*342 4 mysql

我有两个问题.

第一个查询返回11行,第二个查询返回6行,当我对它们使用减号运算符时,它应该返回5行,据我所知

 SELECT location from uploads where username='Gates'
 MINUS
 SELECT fileshare FROM `whiteboard` where username='Gates' and friend='Curlyclouds'
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'减去SELECT fileshare FROM'附近使用正确的语法,whiteboard其中username ='Gates'和friend ='Cur'在第2行

希望我的问题很清楚,任何帮助对我都有帮助.....谢谢

Mar*_*ith 16

MySQL不支持EXCEPTMINUS.

您可以使用NOT EXISTS,OUTER JOIN ... NULLNOT IN(小心空值)做反半连接.

请参阅此处的示例和性能比较

  • 等效的`NOT EXISTS`查询应该看起来像`上传的位置u,其中username ='Gates'而不存在(SELECT*FROM whiteboard w其中w.username ='Gates'和w.friend ='Curlyclouds'和w.文件共享= u.location)` (3认同)