Nếu bạn không muốn (rõ ràng) sử dụng các bảng tạm thời, điều này sẽ hoạt động:
SELECT id FROM (
(SELECT 1 AS id) UNION ALL
(SELECT 2 AS id) UNION ALL
(SELECT 3 AS id) UNION ALL
(SELECT 4 AS id) UNION ALL
(SELECT 5 AS id)
) AS list
LEFT JOIN users USING (id)
WHERE users.id IS NULL
Tuy nhiên, nó khá xấu, khá dài và tôi không rõ nó sẽ hoạt động như thế nào nếu danh sách ID dài.