2017-02-06 100 views
-1
+--------------+---------------+ 
| First number | Second number | 
+--------------+---------------+ 
|  1  |  2  | 
|  2  |  3  | 
|  3  |  4  | 
|  4  |  5  | 
+--------------+---------------+ 

所以我在SQL上有這個表。我想要得到一個特定數字的所有後代。例如,如果我選擇號碼2的結果應該是:關於sql的查詢

+--------------+---------------+ 
|  2  |  3  | 
|  3  |  4  | 
|  4  |  5  | 
+--------------+---------------+ 

數字並不需要在正確的順序:

+--------------+------------------+ 
| First number | Following number | 
+--------------+------------------+ 
|  2  |  3   | 
|  4  |  5   | 
|  3  |  4   | 
|  1  |  2   | 
+--------------+------------------+ 

我應該保持獲得與之前的結果。

我不知道該怎麼做,我希望你能幫助我。

+0

什麼DB引擎你用? –

+2

你的問題看起來很簡單。您可以通過[here](http://www.w3schools.com/sql/sql_intro.asp) –

回答

0

這可以通過一個簡單的選擇語句來實現。

select * from table where "first number" >= 2

+0

輕鬆實現您的目標。我沒有想到這一點,但數字可能不是正確的順序,我只是編輯了這個問題。對不起,關於這個 – Maria

+0

沒有關係,如果數字存儲順序或不,這個查詢將無論如何工作!無論如何,正如@Pham X. Bach所建議的,你的問題是非常基本的,我建議你閱讀關於SQL的指南(只是谷歌,網上有很多) –

1

您可以使用Recursive CTE

WITH RECURSIVE t 
    AS (SELECT * 
     FROM yourtable 
     WHERE "First number" = 2 
     UNION ALL 
     SELECT a.* 
     FROM yourtable a 
       JOIN t b 
        ON b."Second number" = a."First number") 
SELECT * 
FROM t 
+1

這是一個正確的解決方案。爲什麼被低估? –

+0

感謝Dudu .. downvote的任何理由? –