mysql - 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
失败?
解决方案
当您省略“B”时,它将从主查询“FROM BST AS B”中查找子选择“SELECT COUNT(*) FROM BST”而不是 BST。
推荐阅读
- r - 随机森林模型问题
- javascript - 本地范围内同名的控制台全局范围变量
- php - 如果添加了更新图像和 pdf 的代码,则更新查询不起作用
- rest - Canvas - LMS - 如何获取用户提交的测验答案?
- android - 适用于 Android 的 Google 登录:当我将 Web 客户端 ID 传递给 requestIdToken 时出现 12500 错误
- javascript - 如何在javascript中同时使用输入按钮和onclick(鼠标单击)
- c++ - 在 MSVC 2017 中添加新类时找不到基类
- android - 如何从位置服务获取位置超时异常
- javascript - react native show the other component depends on the picker choice
- laravel - 在 laravel 中不使用节点