【发布时间】:2021-09-07 19:56:20
【问题描述】:
我有一个表在同一个表中有父子键关系,我需要找到没有任何子项的父行(例如第 1 行没有其他子项)和最近的子项(例如就像第 17 行有 3 个孩子,即 10,13,14,我们只需要获取最近的孩子,即 10)
【问题讨论】:
-
未来:请提供可复制格式的示例(不是图像),最好是一些在线数据库引擎中的示例,例如this。你也应该标记你的 db-engine fe。
sql-server、mysql等 -
对于 SQL 问题,重要的是包含您期望的输出示例,在这种情况下,不清楚结果是否应该在同一行中包含父项和子项,或者是否包含可接受将一起描述的两个查询的结果合并到一个结果集中但作为不同的行。
-
将
0放入parent_id列以指示“无父”是一个错误的数据模型,因为这样您就不再能够定义适当的外键约束来确保您只参考现有的父母。您应该使用null而不是0以便您可以设置 FK 约束 -
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: postgresql