select min(b.id)
from bar b
left join foo f on f.id=b.id
where b.id between 50 and 59 and f.id is null;
如果不能使用其他表,则可以使用递归CTE来模拟一个表:
with recursive bar (id) AS
(
select 1
union all
select id + 1 from bar where id < 100
)
select min(b.id)
from bar b
left join foo f on f.id=b.id
where b.id between 50 and 59 and f.id is null;
2条答案
按热度按时间jjjwad0x1#
创建另一个具有足够id值的查找表
bar
并使用query:如果不能使用其他表,则可以使用递归CTE来模拟一个表:
hfsqlsce2#
如果你想获得下一个免费的
id
,你可以用途:如果
id
有一个起始值(例如50
):如果
id
应该在某个范围内(例如在50
和59
之间):注意:
id
和50
必须存在,否则上面的查询不会得到51
。