从Table1,Table2中选择

时间:2016-10-04 18:07:58

标签: sql select

如果有人可以帮我解释一下这意味着什么,我发现了以下查询并感激不尽。

select * from table1, table2

3 个答案:

答案 0 :(得分:8)

这称为CROSS JOIN,但在,子句中使用FROM的旧语法。

它生成笛卡尔积,因此结果集中的行数将是table1中的行数乘以table2中的行数(假设{中没有约束} {1}}条款)。它有效地将WHERE中的每一行与来自table1的行进行对。

下面的查询是一个等价的但是做了明确的table2操作,它将数据检索的约束逻辑与连接在不同表中存储的相关数据的逻辑分开:

JOIN

答案 1 :(得分:1)

您将获得table1中的所有行乘以table2中的所有行,并将根据两个表的列显示。正如@sgeddes所指出的那样,创建了一个笛卡尔积。

答案 2 :(得分:0)

表1(Col1,Col2)有4个记录

表2(Col11,Col22,Col33),3条记录

当您使用下面给出的查询时,它将产生NxM行数(笛卡尔加入)

select * from table1, table2 

下面给出两个表的结果和列序列,其中4 x 3 = 12个记录。 Col1,Col2,Col11,Col22,Col33