我在尝试在关系代数中编写以下语句时遇到问题:
select A.name, A.gender, A.class, B.sid from A,B;
我不知道这是否有帮助,但是A和B通过sid主键连接
当我弄乱它的时候,我想到了:
π A.name, A.gender, A.class, B.sid (A,B)
但是我不确定这是否正确
答案 0 :(得分:1)
SQL中的符号FROM A,B
不久前并不常用,它对应于将{{1}的每个元组连接在一起的笛卡尔乘积(现在更普遍地写为FROM A CROSS JOIN B
)。 }和A
的所有元组。
在关系代数中,可以通过笛卡尔乘积B
的运算符来表示,因此查询可以转换为:
x
请注意,在关系代数中,π A.name, A.gender, A.class, B.sid (A x B)
运算符的两个表参数通常都是必需的,且属性各不相同。
最后,还要注意,此关系的两个元组通过某个属性(例如外键)相连的事实被该运算符忽略。