【力扣白嫖日记】608.树节点

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

175.组合两个表

表:Person

列名 类型
id int
p_id varchar

树中的每个节点可以是以下三种类型之一:

"Leaf":节点是叶子节点。

"Root":节点是树的根节点。

"lnner":节点既不是叶子节点也不是根节点。

编写一个解决方案来报告树中每个节点的类型。

以 任意顺序 返回结果表。


我那不值一提的想法:

  • 首先梳理表内容,题干一共给了一张表,记录了树中节点id和父节点id。
  • 其次分析需求,需要编写一个方案报告树中的每个节点类型。
  • 在观察了表后,我发现节点有以下规律
  • 1.根节点,p_id是null,没有父节点
  • 2.内部节点,前面有根节点,后面有叶子节点
  • 3.叶子节点,有父节点,但是没有子节点
  • 用SQL写出来
  • 1.case when p_id is null then "root"
  • 2.p_id in (select p_id from Tree)
  • 3.除了上面两种情况就是叶子节点了
sql 复制代码
select id,
    case when p_id is null then "Root" 
    when id in (select p_id from Tree) then "Inner"
    else "Leaf"
    end as type
from Tree

结果:


总结:

能运行就行。


相关推荐
He.ZaoCha20 分钟前
函数-3-日期函数
数据库·sql·mysql
paopaokaka_luck32 分钟前
基于Spring Boot+Vue的巴彦淖尔旅游网站(AI问答、腾讯地图API、WebSocket及时通讯、支付宝沙盒支付)
数据库·vue.js·spring boot·websocket·mysql·毕业设计·旅游
{⌐■_■}38 分钟前
【软件工程】tob和toc含义理解
前端·数据库·mysql·golang·软件工程·tidb
myloveasuka2 小时前
leetcode11.盛最多水的容器
c语言·数据结构·c++·leetcode
工藤学编程2 小时前
分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战
数据库·spring boot·后端·sql·mysql
平平无奇我要摘星星2 小时前
leetcode1_455.分发饼干
算法·leetcode
秋也凉2 小时前
redis的命令集合
数据库·redis·缓存
C++ 老炮儿的技术栈2 小时前
Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示
服务器·c语言·数据库·c++·ide·算法·visual studio
秋难降3 小时前
Python 知识点详解(二)
数据库·python·正则表达式
前端拿破轮3 小时前
女朋友要和我分手?!!居然是因为交不出赎金信,不会用哈希表😭😭😭
算法·leetcode·typescript