mysql连表查询使用join和where的区别
JOIN的连接条件可以出现在ON关键字或者WHERE子句中,但是我们要特别注意 ON条件和WHERE条件生效时机是不一样的,在大数据量情况下消耗的资源可能会存在很大的差异。
JOIN的连接条件可以出现在ON关键字或者WHERE子句中,但是我们要特别注意 ON条件和WHERE条件生效时机是不一样的,在大数据量情况下消耗的资源可能会存在很大的差异:
此外,INNER JOIN中两种条件的结果是相同的,但是用LEFT JOIN 时(RIGHT JOIN或FULL JOIN类似),因为无论ON的条件是否满足都会返回左表的所有记录,因此下面两个语句是不等价的:
SELECT * FROM tab1 LEFT JOIN tab2 ON (tab1.size = tab2.size) WHERE tab2.name=’AAA’;
SELECT * FROM tab1 LEFT JOIN tab2 ON (tab1.size = tab2.size AND tab2.name=’AAA’);
前面我们提到只要是返回bool值表达式都可以做为JOIN的连接条件,因此有人会在ON条件上直接写上形如 column1 != 100 的过滤条件,推荐用法是ON条件只进行连接操作,WHERE则用于过滤中间表的记录。
延伸阅读:
Memory引擎是Mysql的内存引擎,在实现上,Memory存储引擎不同于Innodb这种组织索引结构(索引即是数据,即数据存放在主键索引上),而是将索引和数据分开存储。索引采用Hash的形式,存放主键id和指向数据的指针,而数据则按插入顺序存放。我们称这种数据组织方式为堆组织方式。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。
相关文章推荐
立即开启你的数字化管理
用心为每一位用户提供专业的数字化解决方案及业务咨询