我有一张名为ranges
的表,看起来像这样 -
create table ranges(low bigint, high bigint, id int);
insert into ranges values (10,20,100);
insert into ranges values (21,30,101);
我还有一张看起来像这样的表 -
create table ip(ip bigint);
insert into ip values (12);
如果id
表中的ranges
介于ip
和{{1}之间,我想要一个从ip
表中输出low
的查询} high
表。
例如,对于ip ranges
,我希望输出为 -
12
因为12,100
介于12
表的低10
和高20
之间。这样做最有效的方法是什么? ranges
表中的ip
列不存在,因此我无法直接加入。
答案 0 :(得分:3)
您可以使用范围加入表格。
SELECT
ip.ip, ranges.id
FROM
ip
JOIN ranges ON ip.ip BETWEEN ranges.low AND ranges.high