这个预测会回归什么?

时间:2017-05-25 12:01:18

标签: sql projection relational-algebra

我是sql的新手,如果我在一个表上运行这个投影,它会什么都不返回,或者这个投影的错误是不允许的(语法)?我把桌子的所有信息和投影放在下面的图片中,以便于阅读:)

my table and projection

1 个答案:

答案 0 :(得分:1)

在关系代数中,你的集合差异会产生错误,因为这两个集合不是联合兼容的:

  

对于set union和set difference,所涉及的两个关系必须是union兼容的 - 也就是说,这两个关系必须具有相同的属性集。 from wikipedia

在SQL中,设置差异可行,因为联合兼容性以更宽松的方式理解,即元组度和数据类型必须匹配,但不能匹配名称。所以这是有效的SQL:

SELECT X FROM A
EXCEPT
SELECT Z FROM A

结果将是一个名为X

的列的表

但是,即使在SQL中,也无法从集合差异中投射Y,因此无法在SQL或关系代数中使用π Y 。这将是无效的SQL:

SELECT Y -- Y is not defined here, only X
FROM (
  SELECT X FROM A
  EXCEPT
  SELECT Z FROM A
)