【发布时间】:2011-12-11 02:50:32
【问题描述】:
我有一个 table1,有如下字段。
rsid pos
123 10000
234 10001
567 10008
另一个table2只有一个字段
rsid
123
345
...
所以,我的目标是找到位置在一定范围内的 rsid。 例如,我想在table1中查找rsid,其位置在table2中rsid的±10000位置内,例如123。
我可以为特定的行编写sql,如下所示
select *
from table1
where pos > (select pos from table1 where rsid=123)-100000
and pos < (select pos from table1 where rsid=123)+100000;
但是在table2中,有数千行,最后我想将所有合格的rsid合并到一个表中,有没有像for循环一样的方法来合并所有结果? 非常感谢您的帮助?
更新:
感谢您的回复。一个更具体的例子如下。假设 table1 只有以下条目。
rsid pos
123 10000
234 10001
567 10008
100 20015
101 20001
108 50000
另一个table2只有这样的条目。
rsid
123
100
那么预期的结果是
rsid pos
234 10001
567 10008
101 20001
因为 234,567 在 123 的 +-10000 范围内,而 101 在 101 的 +-10000 范围内。
【问题讨论】: