在关系代数中,您的差集会产生错误,因为这两个集合不兼容:对于集合并和集合差,涉及的两个关系必须是兼容的 - 也就是说,这两个关系必须具有相同的属性集。来自维基百科 在SQL中,集合差会起作用,因为联合兼容性以更宽松的方式理解,即元组度和数据类型必须匹配,但名称可以不同。所以这是有效的SQL:SELECT X FROM A EXCEPT SELECT Z FROM A 结果将会是一张只有一个名为X的列的表格。然而,即使在SQL中,你也无法从差集中投影Y,所以πY是不可能的,无论在SQL还是关系代数中。下面的SQL语句是无效的:SELECT Y -- Y is not defined here, only X FROM ( SELECT X FROM A EXCEPT SELECT Z FROM A )