2016-10-04 73 views
-1

我发现了以下查询,并感谢它,如果有人可以帮我解释一下这是什么意思。从Table1中选择,表2

select * from table1, table2 
+2

为什么不直接运行它来查看它的功能?它通过使用“交叉连接”来创建'笛卡尔产品'... – sgeddes

+0

谢谢@sgeddes,现在我明白了。我的愚蠢道歉。 –

回答

5

这被称为CROSS JOIN,但在FROM条款,旧语法。

它生成一个笛卡尔乘积,所以结果集中的行数将是从(假设在WHERE子句中没有约束)的table1乘以行数。它将来自table1的每一行与来自table2的行有效配对。

下面查询是一个等效但确实显JOIN操作从连接存储跨越独立的表中的相关数据的逻辑分离数据检索的约束逻辑:

SELECT * 
FROM table1 
CROSS JOIN table2 
+1

感谢您的解释。 –

1

您将从table1中的所有行乘以table2中的所有行,并将根据这两个表的列显示。正如@sgeddes指出的那样,创造一个笛卡儿的产品。

0

表1(Col1中,Col2中)与4条记录

表2(Col11,Col22,Col33)与3条

当您使用下面给出的查询时,会产生N×M的行数(笛卡尔加入)

select * from table1, table2 

两个表格的结果和列顺序将在下面给出,4 x 3 = 12条记录。 Col1,Col2,Col11,Col22,Col33