sqlite3:将两个表相交,其中一个值BETWEEN另外两个

时间:2016-03-17 01:34:39

标签: sqlite

我有两个表,一个有这样的单个条目:

'rs47' 1027

另一个有范围:

'gene1' 1000 1500

这些表是 huge ,所以我试图找出最有效的方法来获取表1中条目在表2中任何范围内的所有条目。

我认为INTERSECT不能像这样使用。我知道如何使用SELECT为单个条目执行此操作:

SELECT name FROM 'table2' INDEXED BY 'start_end' WHERE 1027 BETWEEN start AND end

但我不确定如何为表中的每个记录执行此操作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

要检查另一个表中是否存在相应的行,您可以使用correlated subquery

SELECT *
FROM Table1
WHERE EXISTS (SELECT 1
              FROM Table2
              WHERE Table1.Value BETWEEN Table2.StartValue AND Table2.EndValue);