-- EXPLAIN ANALYZE
SELECT
f.film_id,
f.title
FROM
film f
JOIN
inventory i USING (film_id)
WHERE
EXISTS (
SELECT 1
FROM rental r
WHERE r.inventory_id = i.inventory_id
AND '2005-05-31 12:00:00' BETWEEN r.rental_date AND r.return_date
)
GROUP BY
f.film_id, f.title
HAVING
COUNT(*) = (
SELECT COUNT(*)
FROM inventory i2
WHERE i2.film_id = f.film_id
)
ORDER BY
f.title;
/*
SELECT
f.film_id,
f.title
FROM film f
JOIN inventory i ON f.film_id = i.film_id
WHERE i.inventory_id IN (
SELECT r.inventory_id
FROM rental r
WHERE '2005-05-31 12:00:00' BETWEEN r.rental_date AND r.return_date
)
GROUP BY f.film_id, f.title
HAVING COUNT(i.inventory_id) = (
SELECT COUNT(*)
FROM inventory i2
WHERE i2.film_id = f.film_id
)
ORDER BY f.title;
*/
;
show status like 'Last_query_cost';