【发布时间】:2016-10-05 10:41:48
【问题描述】:
我的数据库中有 2 个表
1) 报告表
AppNo AppName AddedBy AssignedTo ModifiedBy
-------------------------------------------
1 App1 1 2 1
2 App2 1 2 2
3 App3 2 2 2
4 App4 1 2 3
2) 用户表
UserId UserName Role
----------------------
1 Raj Manager
2 Sid Lead
3 KK Rep
所以我想加入两个表,这样我就可以用名字代替 ID
需要结果:
AppNo AppName AddedBy AssignedTo ModifiedBy
-------------------------------------------
1 App1 Raj Sid Raj
2 App2 Raj Sid Sid
3 App3 Sid Sid Sid
4 App4 Raj Sid KK
我的查询:
SELECT
R.AppNo, R.AppName,
u1.UserName as AddedBy,
u2.UserName as AssignedTo,
u3.UserName as ModifiedBy
FROM Report R
LEFT OUTER JOIN Users u1 on u1.UserID = R.AddedBy
LEFT OUTER JOIN Users u2 on u2.UserID = R.AssignedTo
LEFT OUTER JOIN Users u3 on u3.UserID = R.ModifiedBy
但我不想多次加入用户表..
在我的原始报告表中,有近 8 个 UserId 列,所以我不能加入 8 次,这会降低性能。
谁能推荐最好的方法。
注意:我无法更改表架构
提前致谢
【问题讨论】:
标签: sql sql-server database join