我很难解释这个,所以你可能会被标题弄糊涂了。 但我会在这里尽我所能。如何用一个连接“连接”一个表格两次?
假设我们有以下情形:
测试表
- 测试ID
- testtakenby(ID)
- testrevisedby(ID)
用户
- 用户ID
- 用户名
有没有我能得到以下结果的方式:
“测试采取user1和通过user2的修订后的”
无需两次加入表格? 像这样:
select * from tests
inner join users on tests.testtakenby = users.userid
inner join users on tests.testrevisedby = users.userid
我希望有得非常好,因为我通过加入同一个表两次担心的可能的性能问题的高级SQL技巧(我相信它不会与执行,以及双连接)
如果您有性能问题,您应该查找正确的索引而不是更改您的解决方案。 – Jens
我不这么认为,为什么连接两次会出现性能问题? – Ric
您需要别名第二个用户实例 - 如果这是问题 - 另一个解决方案是在select – Cato