You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Id_Orig字段多条件左关联多表的最优实现方法咨询

最优实现方案及ON子句可行性说明

完全可以在LEFT JOIN的ON子句中实现这个关联逻辑,这也是最直接高效的方案,能完美满足你保留Table1所有记录的需求。

具体SQL写法

SELECT 
    Table1.Id_Orig,
    Table1.F1,
    Table1.F2,
    Table_DO.*,
    Table_CC.*,
    Table_DP.*
FROM Table1
LEFT JOIN Table_DO 
    ON Table1.Id_Orig = Table_DO.Id_Orig 
    AND Table1.Id_Orig = 'DO' -- 仅当Id_Orig为'DO'时才关联
LEFT JOIN Table_CC 
    ON Table1.Id_Orig = Table_CC.Id_Orig 
    AND Table1.Id_Orig = 'CC' -- 仅当Id_Orig为'CC'时才关联
LEFT JOIN Table_DP 
    ON Table1.Id_Orig = Table_DP.Id_Orig 
    AND Table1.Id_Orig = 'DP' -- 仅当Id_Orig为'DP'时才关联

逻辑说明

  • 每个LEFT JOIN的ON子句同时包含主表与关联表的Id_Orig相等以及主表Id_Orig等于对应标识两个条件,只有当主表记录的Id_Orig匹配对应关联表的类型时,才会建立关联;不匹配时,关联表的所有字段会以NULL值填充,主表记录依然完整保留。
  • 这种写法逻辑直观,数据库可利用Id_Orig字段的索引(如果已创建)提升关联效率,针对1000条记录的主表来说性能完全够用。
  • 最终结果会完整保留Table1的1000条记录,仅为符合条件的记录填充对应关联表的字段。

内容的提问来源于stack exchange,提问作者user11311005

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:30:51