[英]How to select values from different rows in same table based on conditions
[英]SQL - how to select rows based upon values from a different table?
我有一个名为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
的ip
表之间的low
和high
的ranges
表。
例如,对于ip 12
,我希望输出为-
12,100
因为12
在ranges
表的低10
和高20
之间。 最有效的方法是什么? ranges
表中不存在ip
列,因此我无法进行直接连接。
您可以使用范围联接表。
SELECT
ip.ip, ranges.id
FROM
ip
JOIN ranges ON ip.ip BETWEEN ranges.low AND ranges.high
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.