I have two MySQL tables.
test_settings
id, interval_in_minutes, other_irrevelant_settings
test_results
id, test_settings_id(Foregin Key), datetime, value
I would like to run query every 1 minute
and run tests which last result was later than interval_in_minutes
for every individual test.
Sample db data
test_settings
id interval_in_minutes
1 10
2 40
3 140
etc
So finally result of query will be id 3
if there was no result inserted for last 140 minutes (based on test_result
datetime
inserted after test).
SELECT ts.id
FROM test_settings ts
WHERE (SELECT tr.date
FROM test_results tr
WHERE tr.test_settings_id = tr.id
ORDER BY tr.datetime DESC
LIMIT 1) < DATE_SUB(NOW(), INTERVAL XXXXX MINUTES);
It works only if interval is like XXXXX = 4
but I need it to be dynamic like XXXXX = ts.interval_in_minutes
.
No idea how to do it.. Any help?