首页 > 解决方案 > WHERE P=BN.. AS B 和 WHERE P=N 有什么区别?

问题描述

我正在处理这个hackerrank任务 - 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;

我想知道为什么P=B.N... AS B这里需要“”以及这实际上有什么不同。为什么会WHERE P=N失败?

标签: mysql

解决方案


当您省略“B”时,它将从主查询“FROM BST AS B”中查找子选择“SELECT COUNT(*) FROM BST”而不是 BST。


推荐阅读