开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

您好,我想下,DataWorks中在left join多张表时,这里的这些dt可不可以统一放到?

问题1:您好,我想下,DataWorks中在left join多张表时,这里的这些dt可不可以统一放到where条件后面呢,跟放到ON条件后面有什么区别?image.png 问题2:麻烦问下具体原因吗,为什么别的等值条件要放到where后面,这个不行

展开
收起
真的很搞笑 2023-06-04 17:33:32 164 0
2 条回答
写回答
取消 提交回答
  • 如果将condition放在on条件后面,会在数据库层进行join操作前过滤数据,只保留满足条件的记录。这种做法可能会提高查询效率,但可能会影响数据量较大的表的性能。 如果将condition放在where条件后面,会在数据库层进行join操作后过滤数据,只保留符合条件的记录。这种做法可能会降低查询效率,但对于数据量较大的表的影响较小。 在您提供的SQL语句中,将dt=@@{yyyyMMdd}条件放在了cclass.dt=@@{yyyyMMdd} on条件后面。这种做法可能会在join操作前就过滤掉一些记录,从而提高查询效率。但如果您需要在left join结果集中保留某些特定的记录,那么将条件放在where条件后面可能更合适。

    2023-06-04 18:53:52
    赞同 展开评论 打赏
  • 回答1:这个肯定是放在on后面啊 回答2:了解下执行顺序就知道了,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-06-04 17:44:52
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载