oracle查询的问题,自己想的有点懵了,求高手解答,谢谢了

两张表menu和表product
表结构是:
表menu
id fid name
f1 0 一级菜单
s1 f1 二级菜单
t1 s1 三级菜单
表product
id name
f1 第一
s1 第二
t1 第三
插叙结果显示成:
一级菜单 二级菜单 三级菜单 明细名
一级菜单 第一
一级菜单 二级菜单 第二
一级菜单 二级菜单 三级菜单 第二
怎么写啊,我自己写的一直达不到要求,自己现在有点晕了,帮帮忙,谢谢
一级菜单,二级菜单,三级菜单,是menu表查询生成的,我写的是表自身外连接,可是查询的明显名那里会有重复
最新回答
♂请叫我包子﹌

2024-06-25 02:07:39

用UNION ALL可以吗?
分别查询一级,二级,三级的集合,做UNION ALL操作
SELECT A.NAME, NULL, NULL, B.NAME FROM MENU A, PRODUCT B WHERE A.ID = B.ID AND A.FID = '0' ------一级菜单
UNION ALL
SELECT A1.NAME, A.NAME, NULL, B.NAME FROM MENU A, MENU A1, PRODUCT B WHERE A.ID = B.ID AND A.FID = A1.ID AND A1.FID = '0' ------二级菜单
UNION ALL
SELECT A2.NAME, A1.NAME, A.NAME, B.NAME FROM MENU A, MENU A1, MENU A2, PRODUCT B WHERE A.ID = B.ID AND A.FID = A1.ID AND A1.FID = A2.ID AND A2.FID = '0' ----三级菜单
输了却不死心

2024-06-25 01:10:43

借助Oracle 的connect by查询(树形)应该可以实现,你GOOGLE吧