就像四则运算一样 y=a+b+c+d
其中 a=e+f,则y=e+f+b+c+d
同理这个sql语句可以拆分开来理解
【总查询】
select c.moduleid,c.modulename,c.ParentId from Rc_moduleinfo c, d where c.moduleid=d.smoduleid and (c.parentid=0 or c.isnode=0) order by c.orders
这样就很好理解了 从c,d中查询c.moduleid,c.modulename,c.ParentId 条件是c.moduleid=d.smoduleid and (c.parentid=0 or c.isnode=0)
排序方式是 order by c.orders (递增)
【其中d为】
select distinct parentid as smoduleid from Rc_moduleinfo a,
b where a.moduleid=b.moduleid
distinct 意为选择不重复项,as smoduleid 取别名(as可省略),。。)>0) b 查询结果括起来后面跟名称也是别名(as 省略了)
【其中b为】
SELECT moduleid FROM Rc_userprivilege WHERE accessor = 5
AND flag = 1 union select a.moduleid from Rc_userprivilege a,
Rc_RoleInfo b where a.flag=2 and a.accessor=b.roleid
and CHARINDEX(b.users,',5,')>0)
union 是合并两个查询结果(进列相同时),CHARINDEX函数为在参数1中查找参数2的位置
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。