假设有一个表叫做 menu,包含以下字段:

id INT PRIMARY KEY,
name VARCHAR(255),
parent_id INT

其中,parent_id 表示上级菜单的 id,如果是一级菜单则 parent_id 为 null。

我们可以使用递归查询来查询上级菜单下面所有的数据。

WITH RECURSIVE menu_tree(id, name, parent_id) AS (
    SELECT id, name, parent_id FROM menu WHERE id = :id
    UNION ALL
    SELECT m.id, m.name, m.parent_id FROM menu m JOIN menu_tree mt ON mt.parent_id = m.id
)
SELECT * FROM menu_tree;

其中,:id 是要查询的上级菜单的 id。这个查询会递归地查询所有的下级菜单,直到没有下级菜单为止。最终会返回一个包含所有下级菜单的结果集。

sqlsugar 上级菜单查询下面所有数据

原文地址: https://www.cveoy.top/t/topic/fsyp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录