Допустим, у меня есть таблица t

Current  History  Result
-------------------------
  5        6      black
  6        4      White
  4        1      Black

С числом 5, как мне дважды вернуться в историю, чтобы получить черный или белый результат?

5 -> 6 -> 4 -> black

Предполагая, что в таблице есть и другие строки данных.

Я пытался:

select *
from t.result
where t.current in t.history 
  and t.current in t.history where t.current in ('5')
sql
0
soler tan 18 Апр 2020 в 08:59

1 ответ

Лучший ответ

Если требуется до 2-го уровня, вы можете попробовать следующую логику:

ДЕМО ЗДЕСЬ

SELECT A.[Current],A.History,C.[Current],C.Result 
FROM your_table A
INNER JOIN your_table B ON A.History = B.[Current]
INNER JOIN your_table C ON B.History = C.[Current]
WHERE  A.[Current] IN (5)
0
mkRabbani 18 Апр 2020 в 06:55