【发布时间】:2016-07-26 16:32:18
【问题描述】:
我有一个包含用户信息的用户表和一个签名表,该表使用用户 ID 映射到用户表,如下所示
用户 用户名 |名字 |姓 1 |约翰 |磷 2 |皮特 | C 3 |蒂姆 | D 标志 完成者 |检查人 |经核实 1 | 2 | 3有没有更好的方法来代替下面的多个连接, 考虑到我会有 6 个这样的连接
选择 concat(usr1.firstname, ' ', usr1.lastname) as doneby, concat(usr2.firstname, ' ', usr2.lastname) 作为checkby, concat(usr3.firstname, ' ', usr3.lastname) 验证人 从标志sgn 加入用户 usr1 (usr1.userid = sgn.doneBy) 加入用户 usr2 (usr2.userid = sgn.checkedBy) 加入用户 usr3 (usr3.userid = sgn.verifiedBy)【问题讨论】:
-
你为什么在乎?您的表中有数百万行吗?
-
你在乎什么是什么意思? A) 学习和 B) 使用尽可能少的资源总是更好! @DirkHorsten
-
您的编程时间也是一种资源,更重要的是您的继任者了解它的时间是一种资源。 Sagi 的回答得到了我的支持,但是如果所有表的行数都少于一百,那么编写它的成本就会超过执行你的成本。然后我建议不要使用它。
-
@DirkHorsten,您不必重新发明轮子,但您当然可以检查上面的橡胶。是的,这张表很快就会触及数百万条记录,现在至少你还有另一种方法可以做到,