В чем разница между ГДЕ P = BN .. AS B и ГДЕ P = N? - PullRequest
0 голосов
/ 22 апреля 2020

Я работал над этой задачей хакерранка - https://www.hackerrank.com/challenges/binary-search-tree-1/problem

Я пришел к этому решению с небольшой справкой "Обсуждения":

SELECT N, 
CASE 
    WHEN P IS NULL THEN "Root"
    WHEN (SELECT COUNT(*) FROM BST WHERE P=B.N) > 0 THEN "Inner"
    ELSE "Leaf"
END
FROM BST AS B
ORDER BY N;

Im интересно, зачем здесь нужен "P=B.N... AS B" и какая разница на самом деле. Почему WHERE P=N терпит неудачу?

1 Ответ

0 голосов
/ 22 апреля 2020

Если вы опустите «B», он будет выглядеть в подвыборе «SELECT COUNT (*) FROM BST», а не в BST из основного запроса «FROM BST AS B».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...