问题1:您好,我想下,DataWorks中在left join多张表时,这里的这些dt可不可以统一放到where条件后面呢,跟放到ON条件后面有什么区别? 问题2:麻烦问下具体原因吗,为什么别的等值条件要放到where后面,这个不行
如果将condition放在on条件后面,会在数据库层进行join操作前过滤数据,只保留满足条件的记录。这种做法可能会提高查询效率,但可能会影响数据量较大的表的性能。 如果将condition放在where条件后面,会在数据库层进行join操作后过滤数据,只保留符合条件的记录。这种做法可能会降低查询效率,但对于数据量较大的表的影响较小。 在您提供的SQL语句中,将dt=@@{yyyyMMdd}条件放在了cclass.dt=@@{yyyyMMdd} on条件后面。这种做法可能会在join操作前就过滤掉一些记录,从而提高查询效率。但如果您需要在left join结果集中保留某些特定的记录,那么将条件放在where条件后面可能更合适。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。