MySQL表连接语法[重复]

Posted

技术标签:

【中文标题】MySQL表连接语法[重复]【英文标题】:MySQL table join syntax [duplicate] 【发布时间】: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;

【问题讨论】:

是的,是等价的。 看到这个问题:***.com/questions/1018822/… 谢谢扎克。我担心这是重复的,但无法将我的问题浓缩为回答我问题的搜索。 【参考方案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;

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

【讨论】:

以上是关于MySQL表连接语法[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础语法之多表连接查询

数据库学习笔记6--MySQL多表查询之外键表连接子查询索引

MySQL 多表查询

MySql的回顾五:多表查询下(内联/左外/右外/自连接/交叉)-1999语法

Mysql连表查询

MySQL连接查询(多表查询)