我有一个名为t_employee
的表格,列ID, NAME
另一个名为t_ticket
的表格,列ID, DESCRIPTION, CREATED_BY, UPDATED_BY
请注意,CREATED_BY
和UPDATED_BY
是员工ID
我如何选择以下结果:
ID, DESCRIPTION, CREATED_BY, CREATED_BY_NAME, UPDATED_BY, UPDATED_BY_NAME
其中CREATED_BY_NAME
和UPDATED_BY_NAME
来自employee
表。
我使用临时表并进行更新,但这看起来很昂贵。
这些表也是固定的,所以我无法改变它们。
期待任何建议。
答案 0 :(得分:4)
只需多次加入同一个表,为其添加一个别名(每个连接都有一个别名):
select
t_ticket.ID,
t_ticket.DESCRIPTION,
t_ticket.CREATED_BY,
e1.name as CREATED_BY_NAME,
t_ticket.UPDATED_BY,
e2.name as UPDATED_BY_NAME
from
t_ticket
left join
t_employee as e1 on e1.id = t_ticket.CREATED_BY
left join
t_employee as e2 on e2.id = t_ticket.UPDATED_BY
答案 1 :(得分:0)
您需要连接两次并使用别名,如下所示:
SELECT
t.ID, t.DESCRIPTION, t.CREATED_BY, TableCreated.Name as CREATED_BY_NAME, t.UPDATED_BY, TableUpdated.Name as UPDATED_BY_NAME
FROM
t_ticket t INNER JOIN t_employee TableCreated
ON t.CreatedBy = TableCreated.Id
INNER JOIN t_employee TableUpdated
on t.CreatedBy = TableUpdated.Id;
(根据您的情况使用内部或左侧连接)