1
假设您正在使用两个表R和S的笛卡尔积,并且它们都有两个属性A和B,它们也是相同的数据类型。当您使用相同的属性名称乘以两个表时会发生什么?
如果我把它们相乘,得到的表格是否会以某种方式变成A B A B
或A B
?
假设您正在使用两个表R和S的笛卡尔积,并且它们都有两个属性A和B,它们也是相同的数据类型。当您使用相同的属性名称乘以两个表时会发生什么?
如果我把它们相乘,得到的表格是否会以某种方式变成A B A B
或A B
?
它将获得所有属性,不管它们是否具有相同的名称。对于所有其他JOIN
类型以及任何其他表运算符也是如此。所以:
CREATE TABLE R (A int, B INT);
CREATE TABLE S (A int, B INT);
INSERT INTO R VALUES(1, 2), (2, 3);
INSERT INTO S VALUES(1, 2), (2, 2);
SELECT *
FROM R CROSS JOIN S
会给你像这样的两个表中的所有属性:
A B A B
1 2 1 2
2 3 1 2
1 2 2 2
2 3 2 2
但是你可以限制要在SELECT
语句选择的属性。类似于SELECT T1.A, T2.B
。
你为什么不自己尝试一下 –