我需要获取 table 的 N 条记录X
,但我需要使用 INNER JOIN 过滤这些记录,并事先对连接的记录进行相应的排序。
我尝试做的示例(可能不是 100% 准确,因为我使用的是 SQLAlchemy):
SELECT X.id
FROM X
INNER JOIN Y ON X.id = Y.other_id
WHERE Y.condition_one
ORDER BY Y.condition_two
LIMIT 10
FOR UPDATE OF X SKIP LOCKED;
当我这样做时,我得到的 distinct 少于 10 个id
(可能是因为连接的行是有限的),但是,我不能DISTINCT
用
FOR UPDATE
. 我想我不能使用子查询,因为FOR UPDATE
.
我应该怎么办?