我在mysql 8(最后一个版本)中有两个表OpenOrder和OpenOrderTemp,这两个表都有一些列id、orderid等等。(是相同的结构)我在OpenOrderTemp中插入了一些数据,我只想通过orderid与第一个表OpenOrder进行比较,我创建了这个SQL语法。
SELECT orderid FROM OpenOrder MINUS SELECT orderid FROM OpenOrderTemp;但是坦率地返回给我这个错误
错误SQL 1064:您的SQL语法出现错误;请检查与MySQL服务器版本对应的手册,以获得在第1行使用“SELECT orderid FROM OpenOrderTemp”附近的正确语法。
在这种情况下,我问哪一个sql字符串具有最佳的比较两个表的速度性能?,我知道联接不是一个好的选择,再次感谢。
发布于 2022-03-12 11:37:17
并非所有SQL数据库都支持减号运算符。它可以用于数据库,如甲骨文。
对于数据库(如SQL Server、PostgreSQL和SQLite ),使用EXCEPT操作符执行这种类型的查询。
因为您使用的是MySQL,所以您必须这样做:
SELECT OpenOrder.orderid
FROM OpenOrder
LEFT JOIN OpenOrderTemp ON OpenOrder.orderid = OpenOrderTemp.orderid
WHERE OpenOrderTemp.orderid IS NULL;https://stackoverflow.com/questions/71449221
复制相似问题