我正在使用Joomla和Docman组件。我需要访问MySQL中的一些存储数据,但我无法确定如何查询它们。
我需要的是文档树的顶级节点列表,看起来很简单(SELECT * FROM categories WHERE parent IS NULL
),但是Docman使用另一种结构。
以下是docman_categories表的一部分:
docman_category_id INTEGER
title VARCHAR
此表与docman_category_relations相关,后者是定义树的人:
ancestor_id INT
descendant_id INT
level INT
据我所知,ancestor_id
和descendant_id
是来自docman_categories表的docman_document_id
的关系,level
是一个知道距离多远的数字(多少)等级)介于ancestor_id
和descendant_id
之间。
我一直试图找到一个查询来获得第一级项目......请问您能帮我解决这个问题吗?
更多信息
在docman_category_relations中,ancestor_id
和descendant_id
没有任何空值。
答案 0 :(得分:0)
以下是仅获取顶级节点的正确查询:
SELECT *
FROM docman_category_relations dcr
WHERE
(SELECT COUNT(ancestor_id)
FROM docman_category_relations r
WHERE r.descendant_id = cr.descendant_id) = 1