Anti-patterns
The NOT IN with NULLs Trap
NOT IN with NULLs Trap-- DANGEROUS: If any city_id in 'inactive_cities' is NULL, you get 0 results.
SELECT * FROM users
WHERE city_id NOT IN (SELECT city_id FROM inactive_cities);
-- SAFE: Handles NULLs correctly and is more performant.
SELECT * FROM users u
WHERE NOT EXISTS (
SELECT 1 FROM inactive_cities ic
WHERE ic.city_id = u.city_id
);Functions on Filtered Columns (SARGability)
SELECT * (The "Lazy" Query)
Ordering by Column Position
Correlated Subqueries in SELECT
Summary
Last updated