繁体   English   中英

SQL-如何根据不同表中的值选择行?

[英]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);

我想查询将输出的idranges表中,如果ipip表之间的lowhighranges表。

例如,对于ip 12 ,我希望输出为-

12,100

因为12ranges表的低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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM