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

SQL查询中通过两次关联同一张表获取不同字段值的问题

解决方案

你需要对cadastro_motivos表进行两次INNER JOIN,并给每次关联的表指定不同的别名,以此区分两个关联逻辑。修改后的SQL语句如下:

select 
    refugo.id, 
    cm_defeito.motivo as defeito, 
    cm_causa.motivo as causa, 
    refugo.op_producao, 
    refugo.quantidade, 
    maquina.nome,
    to_char(refugo.data, 'DD/MM/YY HH24:MI:SS') as data_formatada
from 
    refugo 
inner join 
    cadastro_motivos cm_defeito on refugo.id_motivo = cm_defeito.id
inner join 
    cadastro_motivos cm_causa on refugo.id_motivo2 = cm_causa.id
inner join 
    maquina on maquina.id = refugo.id_maquina
order by 
    refugo.id asc

关键说明:

  • 给cadastro_motivos表设置两个不同的别名:cm_defeito(对应缺陷关联)和cm_causa(对应原因关联)
  • 第一次关联用refugo.id_motivo匹配cm_defeito.id,提取motivo作为defeito
  • 第二次关联用refugo.id_motivo2匹配cm_causa.id,提取motivo作为causa
  • 可选:给格式化后的日期字段加上别名(比如data_formatada),让结果可读性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:27:13