将关系代数关系转换为SQL(INTERSECT)?

时间:2017-06-14 16:39:38

标签: mysql sql relational-algebra

你能帮助我将这种关系代数关系翻译成SQL吗?

For a given X(A), Y(A) and T(A):

X UNION (Y INTERSECTS T)

这是我的尝试:

SELECT *
FROM (R UNION S) INTERSECT T;

这是对的吗?有没有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

标准SQL具有INTERSECT,许多产品也是如此。 MySQL没有。

(没有单一的“关系代数”,但通常是:)关系代数INTERSECT仅限于其输入关系具有相同的列,并且就像NATURAL JOIN一样。

所以明显的SQL模拟是NATURAL JOIN。或者使用所有列加入。或(INNER)JOIN ON每对同名列的相等,然后选择每对中的一对。