返回顶部

[后端] mysql 内连接select...where和inner join的区别是什么?

[复制链接]
超级玛丽 显示全部楼层 发表于 2020-11-28 11:29:21 |阅读模式 打印 上一主题 下一主题
已解决
51 3
mysql 内连接select...where和inner join的区别是什么?
超级玛丽2020-11-28 11:29:21





两份查询结果都是一样的,我想知道他们的有何区别吗 或者性能方面?

附件: 您需要 登录 才可以下载或查看,没有账号?立即注册

最佳答案

Destiny元超级版主 关注Ta

2020-11-28 11:29:22

第一个是笛卡尔查询,这种一次查询两个表的数据,查询的结果也是一个二维表,它是area表和city表的“乘积”,即area表的每一行与city表的每一行都两两拼在一起返回。 第二个是内连接查询,返回左表和右表同时存在的数据。
查看完整内容
回复

使用道具 举报

精彩评论3

Destiny元 显示全部楼层 发表于 2020-11-28 11:29:22
第一个是笛卡尔查询,这种一次查询两个表的数据,查询的结果也是一个二维表,它是area表和city表的“乘积”,即area表的每一行与city表的每一行都两两拼在一起返回。

第二个是内连接查询,返回左表和右表同时存在的数据。
回复

使用道具 举报

admin 显示全部楼层 发表于 2020-11-28 11:29:35
理论上有区别,前者是先笛卡尔积再 WHERE 查询。

实际上 MySql 会做优化,前者会被转换为 INNER JOIN 的形式。

一般情况下推荐 INNER JOIN 的写法,这样你也不用去担心数据库到底会不会去优化了。
回复

使用道具 举报

small团团子 显示全部楼层 发表于 2020-11-28 11:30:28
进来学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

星点互联 成立于2014年8月,是目前国内优秀的开源技术社区,拥有超过300万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作