SQL:从表中多次选择同一列
我有一个名为SQL:从表中多次选择同一列,sql,Sql,我有一个名为t_employee的表,其中包含ID、NAME 另一个名为t\u ticket的表,列有ID、DESCRIPTION、CREATED\u BY、UPDATED\u BY 请注意,由创建的和由更新的是员工ID 如何进行选择,以获得类似以下内容的结果: ID, DESCRIPTION, CREATED_BY, CREATED_BY_NAME, UPDATED_BY, UPDATED_BY_NAME 其中,由_NAME创建和由_NAME更新是从员工表中引用的 我使用临时表和更新来完成这
t_employee
的表,其中包含ID、NAME
另一个名为t\u ticket
的表,列有ID、DESCRIPTION、CREATED\u BY、UPDATED\u BY
请注意,由创建的和由
更新的是员工ID
如何进行选择,以获得类似以下内容的结果:
ID, DESCRIPTION, CREATED_BY, CREATED_BY_NAME, UPDATED_BY, UPDATED_BY_NAME
其中,由_NAME创建
和由_NAME更新
是从员工
表中引用的
我使用临时表和更新来完成这项工作,但这似乎很昂贵
而且桌子是固定的,所以我没有办法改变它们
期待任何建议。只需多次加入同一个表,并给它一个别名(每个加入的别名不同):
您需要连接两次并使用别名,如下所示:
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;
(根据您的情况使用内部联接或左联接)
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;