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

如何关联三个SQL数据表并将空白字段赋值为NULL?

输入图片描述

关联操作方案

公共字段的匹配规则统一写在JOIN对应的ON子句中即可,通用实现逻辑如下:

  1. 先确认三张表的公共关联字段,常规业务场景下的对应关系为:
  • Person(人员表)和Tasks(人员任务映射表)通过人员唯一ID关联,常用字段名如person_id
  • Tasks和Task(任务详情表)通过任务唯一ID关联,常用字段名如task_id
  1. 参考SQL示例
SELECT 
  -- 按需指定输出字段,避免不同表同名字段冲突
  p.person_id, p.person_name, t.task_id, t.task_content, ts.task_status
FROM Person p
FULL JOIN Tasks ts 
  -- 这里写Person和Tasks的公共字段匹配规则,多条件用AND拼接
  ON p.person_id = ts.person_id
LEFT JOIN Task t 
  -- 这里写Tasks和Task的公共字段匹配规则
  ON ts.task_id = t.task_id;

注意事项

  • 如果有多个公共匹配字段,可以直接在对应ON子句后用AND拼接所有匹配条件
  • 如果需要对关联后的结果做过滤,过滤条件要写在WHERE子句中,不要写在ON里,否则会改变关联的匹配范围
  • 多表关联出现行数超过单表行数属于正常现象,本质是单条记录匹配到了另一张表的多条对应记录,符合业务逻辑的前提下不需要调整,若需要去重可以在SELECT后加DISTINCT关键字,或使用GROUP BY按业务需求聚合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:36:03