如何使用 sql 实现在一个文档 列出某个标签所在的全部文档

假设文件 f1,f2,f3 都有标签 TODO

希望在 f4 文件中实现 列出 TODO 标签所在的全部文档

f1

f2

f3

以下 3 种方式均未能实现

方法 1:

sql

SELECT * FROM blocks WHERE markdown LIKE '%#TODO#%'

方法 2:

sql

{{ SELECT * FROM blocks WHERE type = 'd' AND id IN (
    SELECT root_id FROM blocks WHERE markdown LIKE '%#TODO#%'
) }}

方法 3:如果需要排除重复文档

sql

{{ SELECT DISTINCT b.* FROM blocks b 
JOIN blocks t ON b.id = t.root_id 
WHERE t.markdown LIKE '%#TODO#%' AND b.type = 'd' }}

方法 1 返回的是有标签的那一行内容

方法 23 返回的是有标签的文件的全部内容

我需要的是返回有标签的文档的文档链接

请教各位高手

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119783 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    11155 引用 • 50664 回帖 • 52 关注

相关帖子

被采纳的回答
  • SELECT '[' || content || '](siyuan://blocks/' || id || ')'
    AS __1____pre__文档标题,
    hpath AS __2__文档路径,
    updated AS __3____datetime__更新时间
    FROM blocks
    WHERE type = 'd'
    AND id IN (
        SELECT root_id FROM blocks WHERE markdown LIKE '%#TODO#%'
    )
    AND hpath not LIKE '%TEST%'
    ORDER BY hpath
    LIMIT 9999;
    

    最好加上 LIMIT,不然可能限制在最大搜索数量内,比如默认 64

    image.png

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Woody2022

    使用查询挂件

    SELECT '[' || b.content || '](siyuan://blocks/' || b.id || ')'
    AS __1____pre__文档标题,
    b.hpath AS __2___文档路径,
    b.updated AS __3____datetime__更新时间
    FROM blocks AS b
    WHERE
    b.markdown LIKE '%#list#%'
    AND b.hpath not LIKE '%TEST%'
    ORDER BY
    b.hpath

    image.png

    标题也和预期不符。

    是否就没有源数据? @88250

  • 其他回帖
  • SELECT '[' || content || '](siyuan://blocks/' || id || ')'
    AS __1____pre__文档标题,
    hpath AS __2__文档路径,
    updated AS __3____datetime__更新时间
    FROM blocks
    WHERE type = 'd'
    AND id IN (
        SELECT root_id FROM blocks WHERE markdown LIKE '%#TODO#%'
    )
    AND hpath not LIKE '%TEST%'
    ORDER BY hpath
    LIMIT 9999;
    

    最好加上 LIMIT,不然可能限制在最大搜索数量内,比如默认 64

    image.png

    1 操作
    wilsons 在 2025-10-10 13:34:34 更新了该回帖