【发布时间】:2011-05-03 23:23:38
【问题描述】:
我正在尝试了解连接,但我有点困惑。我知道如何使用
连接表格=
<=
输入 存在与不存在
我试图尝试了解 INNER JOIN、LEFT OUTER JOIN、USING 等的使用,但它是如此令人困惑。我遇到的主要问题是不同的人使用不同的名称来称呼他们。是否有对不同类型的连接以及它们被称为其他名称的简单解释。例如,在谷歌搜索时,我遇到了以下类型
♦ Simple Join
♦ Equi join
♦ Natural Join
♦ Outer Join
♦ Self Join
♦ Cartesian join
♦ Inner join
♦ Nonequi join
♦ Theta join
♦ Self join
♦ Cross join
♦ Cross Joins
♦ Natural Joins
♦ Inner Join with USING Clause
♦ Inner Join with ON Clause
♦ Left Outer Join
♦ Right Outer Join
♦ Full OuterJoin
以上大部分都是重复的,即它的连接类型相同但名称不同。我确信以上所有内容都可以使用 (=, !=, not in, in exists 等) 之一重新创建,但我很难理解哪个是哪个以及它们之间的区别。图表可能会有所帮助:)
【问题讨论】:
-
另外,你的列表有点乱。我认为可以安全地假设 cross join 和 cross joins 指的是相同类型的连接。 natural join 和 self join 也是如此。
-
另外,简单连接和内部连接也是一样的 (techonthenet.com/sql/joins.php)
标签: sql oracle join left-join inner-join