MYSQL - 不在所有范围之间

时间:2016-07-13 15:31:03

标签: mysql between

我在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。

任何想法?

(我不想使用反连接,因为它需要很多资源)

2 个答案:

答案 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)