Tôi nghĩ rằng phép nối được thể hiện trong mệnh đề SELECT đang được thực thi ngay cả đối với 100000 hàng mà bạn không đưa vào tập dữ liệu cuối cùng.
Làm thế nào về điều này:
SELECT s2.user_id,
(SELECT address_id FROM address a WHERE a.user_id = s2.user_id ORDER BY address_id OFFSET 0 LIMIT 1) AS a_id
FROM (select *
from subscribers s
ORDER BY s.user_id
OFFSET 100000 LIMIT 200) s2
Nếu không, hãy thử một biểu thức bảng phổ biến:
With s2 as (
select *
from subscribers s
ORDER BY s.user_id
OFFSET 100000 LIMIT 200)
SELECT s2.user_id,
(SELECT address_id FROM address a WHERE a.user_id = s2.user_id ORDER BY address_id OFFSET 0 LIMIT 1) AS a_id
FROM s2