我在"任务"表中有一行包含"AssignTo"列和"AssignFrom"列。该列与"员工"表相关。在"员工"表中,我有"姓名"列。如何查询带有获取员工姓名的"任务"表?我知道连接,但每个表只引用一列。
编辑: "员工"表中的 PK 是 OID
可以多次执行联接:
SELECT t.*, e1.Name AS AssignFromTo, e2.Name AS AssignFromName
FROM Task t
JOIN Employee e1
ON t.AssignTo = e1.EmployeeId
JOIN Employee e2
ON t.AssignFrom = e2.EmployeeId
您需要两个连接:
select t.*, ef.name as from_name, et.name as to_name
from task t left join
employee ef
on t.assignfrom = ef.name left join
employee et
on t.assignto = et.name;
这将使用left join
因此,如果工作分配字段为空,则不会丢失任何行。
此外,还应使用员工 ID 而不是联接名称。 也许您应该重新访问您的数据模型。