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
複数の結合テストの後、最初は結合にエラーがあると思っていましたが、同じエラー結果になりました。
複数の ID を持っているため、Group By を使用していることを明確にするSQLFiddle_2
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