SELECT ID from query_1
WHERE ID IN (SELECT ID FROM query_2
WHERE some_condition)
OR ID NOT IN (SELECT ID FROM cached_query_2)
query_2 takes a while to execute and I would like to use the cached result of the previous call (from the first subquery).
What result is used when I use the cached_query in the last row? Is it the result from the time the query was executed by the first subquery, or some other older result? Thank you.
Interesting question that I don’t know offhand. If you add CTE’s can test the behavior yourself. If you add a NOW() or GET_DATE() (or whichever function your database uses for current timestamp) to query_2 you can pull that as well and see which result was used.
WITH
realtime_version AS (
SELECT id FROM query_2 WHERE some_condition
),
cached_version AS (
SELECT id FROM cached_query_2
)
SELECT id from query_1
WHERE id in (SELECT id from realtime_version)
OR id NOT IN ( SELECT id FROM cached_version)
Login or sign up disabled while the site is in read only mode