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

SQL如何基于前一列登录信息从关联表拉取对应用户姓名

修正方案

原有SQL存在几个问题:

  • 未选择查询ns_medication表的mlx_ubl字段,缺少结果需要的第一列
  • 使用+拼接字符串的语法不适配所有数据库,且未添加姓名中间的分隔空格
  • 未给查询字段设置别名,无法得到期望的列名

可根据你使用的数据库类型选择对应写法:

适配PostgreSQL、Oracle、SQLite(支持标准SQL拼接符)

SELECT 
  ns_medication.mlx_ubl AS "UBL",
  oslogname.lognm_firstnm || ' ' || oslogname.lognm_lastnm AS "Employee Name"
FROM oslogname 
INNER JOIN ns_medication 
ON oslogname.mlx_ubl = ns_medication.mlx_ubl;

适配MySQL

SELECT 
  ns_medication.mlx_ubl AS UBL,
  CONCAT(oslogname.lognm_firstnm, ' ', oslogname.lognm_lastnm) AS `Employee Name`
FROM oslogname 
INNER JOIN ns_medication 
USING(mlx_ubl);

适配SQL Server

SELECT 
  ns_medication.mlx_ubl AS UBL,
  ISNULL(oslogname.lognm_firstnm, '') + ' ' + ISNULL(oslogname.lognm_lastnm, '') AS [Employee Name]
FROM oslogname 
JOIN ns_medication 
ON oslogname.mlx_ubl = ns_medication.mlx_ubl;

注意事项

  • 上述示例默认使用INNER JOIN,仅返回两张表关联匹配成功的记录,若需保留ns_medication中未匹配到姓名的UBL记录,可将INNER JOIN替换为LEFT JOIN
  • 带空格的列别名需要根据数据库类型选择对应的包裹符号:MySQL用反引号,PostgreSQL/Oracle用双引号,SQL Server用方括号
  • 如果存在名或姓为空的情况,可额外添加空值处理函数,避免拼接结果出现多余空格或者null值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:02