【发布时间】:2020-10-21 15:56:13
【问题描述】:
SELECT
t3.id,
t3.prod_ID,
MIN(diff) AS min_time
FROM
(SELECT
t1.id,
(UNIX_TIMESTAMP(t2.time_stamp_2) - UNIX_TIMESTAMP(t1.time_stamp)) AS diff
FROM
production t1
LEFT JOIN
process t2 ON t1.id = t2.id
HAVING
diff >= 0) tx
LEFT JOIN
production t3 ON t3.id = tx.id
GROUP BY
t3.id
运行后返回结果为:
id prod_ID min_time
-----------------------
1 2 1200
它应该返回的是
id prod_ID min_time
1 9 1200
我最初以为是加入有错误,经过多次加入测试,同样的错误结果。
SQLFiddle_2 澄清我使用 Group By 是因为我有多个 ID
SQLFiddle_3 进行更多扩展。
在SQLFiddle_3上运行后,返回结果为:
id prod_ID min_time
-----------------------
1 2 1200
2 2 960
3 2 360
应该是这样的
id prod_ID min_time
-----------------------
1 9 1200
2 2 960
3 3 360
【问题讨论】:
标签: sql calculated-columns calculated-field sql-calc-found-rows