将两个具有相同属性名称的表相乘时会发生什么?

时间:2012-10-19 01:41:12

标签: mysql sql

假设您正在使用两个表R和S的笛卡尔积,并且它们都有两个属性,A和B,它们也是相同的数据类型。

如果我将它们相乘,结果表格会以某种方式A B A BA B吗?

1 个答案:

答案 0 :(得分:2)

它将获得所有属性,无论它们是否具有相同的名称。对于所有其他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