sql-server - SQL Server:加入用户表以匹配匹配列员工编号
问题描述
我正在运行查询以将用户名从users
表显示到tickets
表requester_id
, submitter_id
,并assignee_id
在其后面添加一个名称列,如下所示:
,t.requester_id
,u.name as requester_name
,t.submitter_id
,u.name as submitter_name
,t.assignee_id
,u.name as assignee_name
如果我只做 requester_name 并加入join Users as u on t.requester_id = u.ID
它就可以了。但我正在尝试对三列执行此操作。
SELECT t.id
,t.url
,t.external_id
,t.type
,t.subject
,t.description
,t.priority
,t.status
,t.recipient
,t.requester_id
,u.name as requester_name
,t.submitter_id
,u.name as submitter_name
,t.assignee_id
,u.name as assignee_name
,t.organization_id
,t.group_id
,t.collaborator_ids
,t.forum_topic_id
,t.problem_id
,t.has_incidents
,t.due_at
,t.tags
,t.via
,t.custom_fields
,t.satisfaction_rating
,t.sharing_agreement_ids
,t.followup_ids
,t.ticket_form_id
,t.created_at
,t.updated_at
,t.channel
FROM Tickets as t
join Users as u on t.requester_id = u.ID
join Users as u on t.submitter_id = u.ID
join Users as u on t.assignee_id = u.ID
我试图在每个 requester_id、submitter_id 和 assignee_id 之后添加一个新行,以在用户表中显示名称。
任何帮助将不胜感激。
解决方案
通过三次加入 Users 表,您已经完成了一半,但每次都需要给它一个不同的别名:
FROM Tickets as t
join Users as ru on t.requester_id = ru.ID
join Users as su on t.submitter_id = su.ID
join Users as au on t.assignee_id = au.ID
然后:
,t.requester_id
,ru.name as requester_name
,t.submitter_id
,su.name as submitter_name
,t.assignee_id
,au.name as assignee_name
推荐阅读
- android - 广播接收器在模拟器上工作但在真实设备上工作(Android Oreo)
- ubuntu - 使用 gpg 时如何修复“gpg:警告:homedir '/home/jonny/.gnupg' 上的不安全所有权”?
- node.js - 运行 React 应用程序时出错
- linux - 如何遍历作为参数传递给 bash 函数的一系列数字,然后返回偶数的计数?
- swift - UITableView 内部不一致
- r - 在 ggpairs 之后尝试使用 ggsave 时收到错误消息
- javascript - 如何将对象从 React 文件导入普通的 vanila javascript 文件
- c - 我可以使用指向包含指向该结构的指针的结构的指针来访问结构的成员吗
- garbage-collection - 有没有办法防止普通 lisp 中的堆耗尽
- wordpress - Wordpress REST API 无法发表评论