You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ORDER BY/GROUP BY实现TEMPLATES表树结构父子关联排序

实现方案

你只需要在原有查询基础上添加ORDER BY逻辑即可,核心思路是先按所属主文档ID分组,再按文档类型排序保证主文档排在同组最前,两层排序就能实现你要的效果。

修改后的完整查询语句如下:

SELECT x.*,x.ROWID FROM TEMPLATE x
WHERE IS_MASTER = 1 OR MASTER_ID IS NOT NULL 
ORDER BY 
  -- 第一排序维度:将同一主文档及其附属划分到同一排序组
  CASE WHEN IS_MASTER = 1 THEN ID ELSE MASTER_ID END,
  -- 第二排序维度:同组内主文档优先展示
  IS_MASTER DESC
  -- 若需要附属元素内部按规则排序,可在此追加字段,例如按ID升序:, ID ASC

逻辑说明

  1. 第一层排序用CASE表达式生成分组键:主文档取自身ID作为分组键,附属元素取MASTER_ID作为分组键,这样所有关联同一个主文档的记录都会被分到同一排序区间
  2. 第二层排序用IS_MASTER倒序,取值为1的主文档自然会排在同组取值为0的附属元素前面
  3. 该写法兼容所有主流关系型数据库(MySQL、Oracle、SQL Server、PostgreSQL等),如果你的场景还有超过两层的嵌套层级,可以再补充递归CTE逻辑实现

内容的提问来源于stack exchange,提问作者user615993

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:57:02