sql - 是否可以将表连接到自身
问题描述
我有一个将两个表连接在一起的查询。在表 OI 中有一个员工 ID,我将其加入 HR 表以检索员工姓名:
inner join hr AS hr on o.syscreator = hr.res_id
HR 表上还有员工经理,但值只是经理的员工 ID。因此,要检索经理的全名,我需要使用自我加入吗?我只能找到使用 FROM 表的自连接示例,在本例中是连接表。
select o.ordernr,
o.refer,
o.orddat,
o.afldat,
o.magcode,
o.user_id,
o.status,
o.represent_id,
o.crdnr,
o.ord_debtor_name,
o.ord_AddressLine1,
ord_PostCode,
ord_City,
ord_StateCode,
o.ord_landcode,
o.ord_Phone,
o.ord_contactperson,
o.ord_contactemail,
o.syscreated,
h.fullname AS RepName,
h.repto_id AS ManagerID
from order o
inner join humres AS hr on o.syscreator = hr.res_id
任何帮助,将不胜感激。
解决方案
您可以确保将同一张桌子带两次 - 您只需要使用不同的别名。
我认为你想要:
select
o.ordernr,
...,
h.fullname AS RepName,
h.repto_id AS ManagerID,
hr_mgr.fullname as MgrName
from order o
inner join humres AS hr on o.syscreator = hr.res_id
inner join humres AS hr_mgr on hr_mgr.res_id = hr.repto_id
推荐阅读
- c# - 字典作为另一个字典的键/相等字典的计数
- linux-kernel - Raspberry PI 3 b+ IO 外设在 Linux 内核虚拟地址空间中映射到哪里?
- ios - Swift4 中的异步 DispatchQueue 和多线程
- c# - 为什么没有在 MigrationDbContext 上建模 AppUser?
- function - 电量查询中的迭代计算
- ms-word - 如何自动更新 Word 的 Office.js 加载项中的字段?
- elasticsearch - elasticsearch中使用父子关系有哪些注意事项
- html - HTML 卡片图标不固定在该给定位置;他们正在改变卡的名称
- javascript - 将 Java 代码转换为 JS(jsweet 错误)
- scala - 类型参数 [Nothing,X] 不符合类型参数界限 [T,X<: XX[T]]>