首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将菜单和子菜单导入数据库

将菜单和子菜单导入数据库
EN

Stack Overflow用户
提问于 2015-12-08 10:29:00
回答 2查看 124关注 0票数 0

我下面有个问题

代码语言:javascript
复制
SELECT DISTINCT a.mkey, 0 child_menu_mkey, UPPER(a.menu_name) parent_menu, '' child_menu 
FROM wms_menu_hdr a,
     wms_menu_hdr b 
WHERE a.mkey = b.parent_mkey 
UNION 
SELECT DISTINCT b.mkey, b.mkey child_menu_mkey, '' parent_menu, b.menu_name child_menu 
FROM wms_menu_hdr a,
     wms_menu_hdr b 
WHERE a.mkey = b.parent_mkey 
ORDER BY 1,2 

将我的结果显示为

我正在使用SQL-server-2005

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-08 12:08:32

我以前的回答是另一个问题,但我们澄清了这个问题,所以试试这个:

代码语言:javascript
复制
SELECT parent_key, child_key, parent_menu, child_menu
FROM
(SELECT DISTINCT a.mkey AS mkey, 0 child_menu_mkey, UPPER(a.menu_name) parent_menu, '' child_menu, mkey AS parent_key 
        FROM wms_menu_hdr a
        WHERE a.mkey IN (SELECT parent_mkey FROM wms_menu_hdr)
        UNION ALL
        SELECT DISTINCT b.mkey, b.mkey child_menu_mkey, '' parent_menu, b.menu_name child_menu, a.mkey AS parent_key
        FROM wms_menu_hdr a,
             wms_menu_hdr b 
        WHERE a.mkey = b.parent_mkey)
ORDER BY parent_key, child_menu_key;
票数 1
EN

Stack Overflow用户

发布于 2015-12-08 10:44:40

在没有窗口函数的Server 2005中,需要某种子查询,例如:

代码语言:javascript
复制
WITH t AS
(
        SELECT DISTINCT a.mkey, 0 child_menu_mkey, UPPER(a.menu_name) parent_menu, '' child_menu 
        FROM wms_menu_hdr a,
             wms_menu_hdr b 
        WHERE a.mkey = b.parent_mkey 
        UNION 
        SELECT DISTINCT b.mkey, b.mkey child_menu_mkey, '' parent_menu, b.menu_name child_menu 
        FROM wms_menu_hdr a,
             wms_menu_hdr b 
        WHERE a.mkey = b.parent_mkey) 
SELECT t.mkey, t.child_menu_mkey, t.parent_menu, t.child_menu
FROM t JOIN (SELECT child_menu_mkey, min(mkey) AS min_mkey 
         FROM t 
         GROUP BY child_menu_mkey) AS g 
        ON t.child_menu_mkey = g.child_menu_mkey AND t.mkey = g.min_mkey;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34153511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档