您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在MySQL查询中,为什么要使用join而不是在哪里?

在MySQL查询中,为什么要使用join而不是在哪里?

任何涉及多个表的查询都需要某种形式的关联,以将结果从表“ A”链接到表“ B”。传统的(ANSI-89)方法是:

SELECT *

FROM TABLE_A a, TABLE_B b WHERE a.id = b.id

这是使用ansi-92 JOIN语法重写的查询

SELECT *
  FROM TABLE_A a
  JOIN TABLE_B b ON b.id = a.id

在受支持的地方(Oracle 9i +,Postgresql 7.2 +,MysqL 3.23 +,sql Server 2000+),使用两种语法都不会对性能产生任何好处。优化器将它们视为相同的查询。但是更复杂的查询可以从使用ansi-92语法中受益:

在ANSI-89上使用ansi-92 JOIN语法的原因有很多:

ansi-92 JOIN语法是模式,而不是反模式:

缺乏熟悉度和/或舒适度,我认为继续使用ANSI-89 WHERE子句代替ansi-92 JOIN语法没有任何好处。有人可能会抱怨ansi-92语法更冗长,但这就是它的明确之处。越明确,就越容易理解和维护。

MySQL 2022/1/1 18:17:10 有452人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶