我遇到了问题。我在学校使用sybase,当我正在制作项目时,我发现了一些问题。我了解到join
没有on
子句应该像cross join
(笛卡尔积)一样工作。但是当我在两个表之间join
时,例如A
和B
。
Select * from A join B
与A join B on A.Key=B.key
完全相同。我必须使用交叉连接才能拥有笛卡儿。
我还有另一个问题:我应该能够join
没有任何关系的表格并得到它们的笛卡尔积,但我看到“没有办法join
表X
到Y
“。
答案 0 :(得分:0)
显然在您正在使用的Sybase系统上,join
没有on
意味着“自然连接”:一个意味着基于同名列的连接(或者,可能是在外国之后)关键声明)。
我了解到没有on子句的join应该像cross join
一样工作
在早期,SQL没有 join 关键字。您的查询将表示为Select * from A, B
。这产生了笛卡尔积。从关系角度来看,该产品使用where
通过关系选择(限制)运算符进行了筛选。