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

SQL查询如何两次关联同一usuarios表分别获取操作员和主管姓名

问题核心原因

你遇到的是同表多次关联的别名冲突问题:

  • 两次LEFT JOIN同一个usuarios表没有指定不同别名,数据库无法区分你要取的是哪次关联的nome字段
  • 额外注意:你原SQL的关联条件存在逻辑错误,pdv_request.operador和supervisor都是int类型的用户ID,不能和usuarios.nome(用户名字段,字符串类型)做等值匹配,应该关联usuarios表的用户ID主键字段(下文假设该字段名为id,你可以替换为你表中实际的主键字段名)

修正后的SQL语句

SELECT
  pdv_request.req_id,
  pdv_request.data_caixa,
  pdv_request.turno,
  pdv_request.terminal,
  pdv_request.nro_venda,
  pdv_request.valor_venda,
  pdv_request.razao,
  u_op.nome as operador_nome, -- 读取操作员对应的姓名
  u_sup.nome as supervisor_nome -- 读取主管对应的姓名
FROM pdv_request
-- 第一次关联操作员对应用户表,指定别名u_op
LEFT JOIN usuarios u_op ON pdv_request.operador = u_op.id
-- 第二次关联主管对应用户表,指定别名u_sup
LEFT JOIN usuarios u_sup ON pdv_request.supervisor = u_sup.id 
WHERE
  pdv_request.data_caixa NOT BETWEEN :dini AND :dfin
ORDER BY
  pdv_request.data_caixa ASC

改动说明

  • 给两次关联的usuarios表分别指定了独立别名u_op、u_sup,避免表名冲突
  • 修正了关联匹配逻辑,用用户ID字段做等值关联,保证数据匹配正确性
  • 在SELECT子句中通过表别名分别读取两个关联表的nome字段,指定不同的结果别名区分操作员姓名和主管姓名

内容的提问来源于stack exchange,提问作者Rodrigo P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:09:03