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表连接语法[重复]的主要内容,如果未能解决你的问题,请参考以下文章
数据库学习笔记6--MySQL多表查询之外键表连接子查询索引