sql - 当匹配值介于两个列值之间时执行连接

时间:2016-10-05 16:24:33

标签: sql join

我有一个像下面这样的table1,table1非常庞大

Col1 Col2
A     1
B     5
A     7

我的表2如下。我真正的桌子2非常大,由于尺寸限制我无法爆炸。

Col3 Col4  Col5
0     2      x
4     5.5    y
6     7.5    z

在这种情况下,有一种方法可以连接table1和table2,以便where table1.col2 is between table2.col3 and table2.col4

我想要的输出在

之下
Col1 Col2 Col5
A     1    x
B     5    y
A     7    z

2 个答案:

答案 0 :(得分:1)

你可以尝试

SELECT
    t1.col1
  , t1.col2
  , t2.col5
FROM table1 t1
JOIN table2 t2 ON t1.col2 BETWEEN t2.col3 AND t2.col4

答案 1 :(得分:1)

您需要INNER JOIN BETWEEN作为join条件

SELECT t1.col1, 
       t1.col2, 
       t2.col5 
FROM   table1 t1 
       JOIN table2 t2 
         ON t1.col2 BETWEEN t2.col3 AND t2.col4 

注意:您提到其中table1>> col2位于table2>> col4和table2>> col5 之间,但它应该是 where table1&gt ;> col2介于 table2>> col3 table2>> col4

之间