【问题标题】:What is the difference between inner join and non-equi join?内连接和非等连接有什么区别?
【发布时间】:2020-06-15 03:16:44
【问题描述】:

根据我在互联网上阅读的定义,在等连接中,连接条件是相等 (=),而内连接也可以有其他运算符,例如小于 ()。

非等连接是一种连接类型,其连接条件使用除等于以外的条件运算符。

这是否意味着非等连接和内连接相同?

【问题讨论】:

  • “我在 Internet 上阅读的定义” 是时候关注已出版的关于信息建模、关系模型和 DB 设计的学术教科书了(包括“标准化到更高的 NF”)。 (记录和使用设计的语言和工具手册不是这样的教科书。)(维基文章或网络帖子也不是。)
  • Equijoin 是一个 RA(关系代数)运算符,详细信息取决于特定版本的 RA 中的特定定义。所以你需要告诉我们你的意思。 “非等连接”不是标准的。您在哪里看到这些条款?告诉我们为什么你认为事情是相同或不同的,或者你在哪里不知道。不要只是要求更多的演示文稿。 SQL INNER JOIN ON 适用于任何条件,因此不清楚“可以有其他运算符”甚至“有一个运算符”是什么意思。请参阅 How to Ask、其他 help center 链接、点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。

标签: database join inner-join jointable non-equi-join


【解决方案1】:

这是两个不同的东西,“equi-”和“non-equi”连接独立于逻辑连接类型。

  • “Equi-join” 是指ON 子句中的所有列都相等匹配,例如ON t1.c1 = t2.c1 AND t1.c2 = t2.c2

  • "Non-equi-join" 是指一个或多个列使用不等式比较(例如,< 小于、> 大于、<> 不等于等),例如ON t1.c1 = t2.c1 AND t1.c2 > t2.c2

“等连接”和“非等连接”都可以与任何逻辑连接一起使用,例如INNER JOINOUTER JOINLEFT JOINRIGHT JOIN

我从Complex SQL.com site 中找到了下图是最容易理解它的方法:

您可以阅读更多详细信息,例如 An Illustrated Guide to the SQL Non Equi JoinSQL Joins on Beginner SQL Tutorial

【讨论】:

  • 我知道等连接和非等连接是不一样的。但是内连接和非等连接呢?
  • 正如我在第一句话中所写的,它们不相关。您可以同时拥有等值和非等值INNER JOIN。检查图表并阅读我链接的那些文章。
  • @MohitSaxena 我的回答是否有助于您理解这些术语?如果是,请考虑接受我的回答,这将有助于其他人找到相关信息,并且还会奖励我的一些声誉积分。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2011-02-12
  • 2014-07-06
  • 2010-10-01
  • 2013-08-25
  • 2011-09-19
  • 1970-01-01
相关资源
最近更新 更多