mysql5.7实现EXCEPT ALL
时间: 2024-07-23 15:00:52 浏览: 107
mysql5.7版本安装包
MySQL 5.7中并没有直接提供`EXCEPT ALL`这样的关键字,它类似于SQL Server中的`EXCEPT DISTINCT`,用于从第一个集合中排除所有在第二个集合中存在的元素,但是MySQL的语法更倾向于使用`NOT EXISTS`、`LEFT JOIN`或者自连接结合`DISTINCT`来达到类似的效果。
例如,如果你想从表A中找出不在表B中的所有记录,可以这样做:
```sql
SELECT A.*
FROM tableA A
WHERE NOT EXISTS (SELECT * FROM tableB B WHERE B.id = A.id)
```
如果你想要找出两个表中完全不相同的行(每个值都不匹配),你可以使用子查询和`UNION`操作,然后再次去除重复:
```sql
(SELECT A.* FROM tableA A
UNION ALL
SELECT B.* FROM tableB B
) AS combined
GROUP BY column1, column2, ...
HAVING COUNT(*) = 1
```
这里假设`column1`, `column2`, ...是你想比较的一组列。
阅读全文