2012-10-09 26 views
1

我只是想知道如何創建一個查詢,以這種方式它將檢查列是否介於參考表之間。如何在參考表中使用BETWEEN

SELECT * 
FROM Table1 WHERE Column1 BETWEEN (SELECT Column1 , Column2 FROM TABLE2) 

我只是不知道如何實現它以正確的方式。

謝謝。

回答

2

如果你可以在Table2重疊範圍,以及所有你想要的(唯一的)Table1記錄是在Table2任何範圍內,那麼這個查詢將做到這一點。

SELECT * 
FROM Table1 
WHERE EXISTS (
    SELECT * 
    FROM Table2 
    Where Table1.Column1 BETWEEN Table2.Column1 and Table2.Column2) 

您也可以解決這一JO​​IN的使用,如表2中的範圍不重疊,否則你將需要爲使用DISTINCTROW_NUMBER()削下來,唯一Table1記錄。

+0

我沒有得到重疊範圍的一部分,但我認爲這必須是最安全的。謝謝! – Sherwin

1

試試這個....

SELECT * 
FROM Table1 as t1 
INNER JOIN Table2 t2 ON t1.Column1 BETWEEN t2.Column1 AND t2.Column2 
+0

你好,謝謝你這一點。 =) – Sherwin

+0

你的歡迎... – Silagy

0

這個作品

SELECT * FROM table1 as t1,table2 as t2 
    WHERE t1.Column1 BETWEEN t2.Column1 AND t2.Column2.