【问题标题】:MySQL table join syntax [duplicate]MySQL表连接语法[重复]
【发布时间】:2013-07-29 15:00:04
【问题描述】:

如果我使用这样的语法

SELECT * FROM table_1, table_2 WHERE table_1.id=table_2.id;

这是一个 INNER JOIN 吗?换句话说,这是否等同于

SELECT * FROM table_1 INNER JOIN table_2 ON table_1.id=table_2.id;

【问题讨论】:

标签: mysql


【解决方案1】:

简短回答: 是的,是一样的。

大多数 RDBMS 最终将以相同的方式处理这两种语法。

使用INNER JOIN 被认为可读性更好,同样是ANSI standard

【讨论】:

  • 另一种语法也是ANSI标准;)
  • 我知道,我只是没有把它放在那里以避免关于它的宗教辩论! :-)
【解决方案2】:

对于像这样的简单情况,MySQL 引擎似乎将以相同的方式进行优化。我通过运行解决了这个问题

DESCRIBE SELECT * FROM table_1, table_2 WHERE table_1.id=table_2.id;

DESCRIBE SELECT * FROM table_1 INNER JOIN table_2 ON table_1.id=table_2.id;

它会告诉你一些关于查询将如何运行的信息。

【讨论】:

    猜你喜欢
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    相关资源
    最近更新 更多