【发布时间】:2011-06-21 04:52:43
【问题描述】:
我有两张这样的表:
Table1 (ID, Kilometers, Depth)Table2 (ID, Kilometers, Depth)
Sample Data:
Table 1
1, 0.001, 10
2, 0.002, 11
3, 0.003, 11
Table 2
1, 0.001, 10
2, 0.003, 12
3, 0.004, 15
我需要根据其公里值将表1中的深度替换为表2中的深度。
但是,对于表 1 中的每个人来说,表 2 中可能没有公里值。所以我需要获取最接近的值(按公里)并在替换中使用它的深度。
我希望通过一条 SQL 语句来实现这一点。 直接替换就像:
UPDATE T1, T2 SET T1.Depth = T2.Depth WHERE T1.Kilometers = T2.Kilometers
我有什么办法可以调整它以获得最接近的值?
【问题讨论】:
-
提示:最接近 = 差的绝对值最小。 SQL 方便地有
ABS、-和MIN。 -
表2中哪条记录最接近表2中的记录2?
-
“任何一个都可以”从来都不是编写 SQL 的好规范。 SQL 通常希望你准确。
-
明白,答案可以在任何一个方向上都是精确的。我只是想模拟我遇到的问题。
标签: mysql sql replace sql-update closest