我在MYSQL中有两个表,其中table2包含Ids的范围,table1包含id值。我想分隔不在table2范围内的table1 ID。这个查询:
select id
from table1,table2
where table1.id not between table2.start and table2.end
将导致id不在至少一个范围之间。但是我希望得到不在所有范围之间的ID。
任何想法?
(我不想使用反连接,因为它需要很多资源)
答案 0 :(得分:0)
您可以使用not exists
:
select t1.*
from table1 t1
where not exists (select 1
from table2 t2
where t1.id between t2.start and t2.end
);
答案 1 :(得分:0)
我不知道我是否正确,但如果你想得到table1的id不在table2的id范围之间,你可以试试这个:
select id from table1
where table1.id not between
(select min(table2.id) from table2) and
(select max(table2.id) from table2)