SQL
Delete Records Based on Conditions from Another Table
Learn to safely delete rows from one table where related records in another table meet specific criteria using SQL subqueries.
DELETE FROM
users
WHERE
user_id IN (
SELECT
u.user_id
FROM
users u
LEFT JOIN
orders o ON u.user_id = o.user_id
WHERE
o.order_id IS NULL AND u.registration_date < '2022-01-01'
);
How it works: This SQL query demonstrates how to delete records from the `users` table based on conditions that involve another table (`orders`). The subquery identifies `user_id`s that have no associated orders (orphaned users) and registered before a specific date. The outer `DELETE` statement then removes all `users` whose `user_id` appears in the list generated by the subquery, effectively cleaning up inactive or orphaned user accounts.