【问题标题】:Is this a left join or right join, inner or outer?这是左连接还是右连接,内部还是外部?
【发布时间】:2015-06-17 16:47:25
【问题描述】:

一段时间以来第一次坐在这里写 SQL。我知道所有连接的所有 vendiagrams,但我想知道我刚刚写了什么类型的连接。由于我没有使用“JOIN”关键字,这甚至是典型的连接吗?

select * from table1 t, table2 a where a.column1 = -10300 AND t.column1 = a.column2;

谢谢, k9

【问题讨论】:

  • 看起来像内部连接
  • 只是对标题的评论。左连接和右连接都是外连接。我没有做出假设,但不清楚你是否意识到这一点。
  • 使用显式连接而不是隐式连接的另一个原因。它们已经过时了 20 多年,而且有很多充分的理由。

标签: mysql sql-server join


【解决方案1】:

由于“t.column1 = a.column2”,这与内部连接的执行方式相同。如果不考虑,那就是交叉申请。

这里有更多信息:http://explainextended.com/2009/07/16/inner-join-vs-cross-apply/

【讨论】:

    【解决方案2】:

    这将被视为旧式内部连接。

    【讨论】:

      【解决方案3】:

      在 MySQL 中,JOIN 不合格意味着INNER JOIN。换句话说,INNER JOIN 中的INNER 是可选的。 JOIN官方文档here

      【讨论】:

        【解决方案4】:

        这是一个古老的 oracle 风格的内部连接。它将为您提供列匹配的两个表中的所有行,这几乎就是内部连接。

        仅供参考,在一切都采用 ANSI 标准 SQL 之前,这曾经是 Oracle SQL 的标准做法。

        【讨论】:

          【解决方案5】:

          当您在 Where 中使用内连接逻辑时,它的内连接。

          【讨论】:

          • 这是不正确的。仍然可以在不实际使用 join 语句的情况下连接表。
          • @HandyPete ,已更新。只是没有专注于问题。
          • 重点仍然存在。它仍然是一个连接,只是语法不同。
          • 它说这在语法上不是一个连接。但它只是一种不太明确的语法。
          • 我做了,所以去掉第一个。
          猜你喜欢
          • 2021-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-10
          • 1970-01-01
          • 2022-01-12
          • 2013-07-27
          • 2013-08-28
          相关资源
          最近更新 更多