有两张表,分别是文件目录表和目录权限表,如下文件目录表
id 目录代码 目录名称
1 13 ...
2 1301 ...
3 1302 ...
4 130109 ...目录权限表
id 目录代码 权限 账号
1 13 yes jacky
2 ... ... ...在目录权限中,是包含了下一级目标的权限的.
而在目录表中,目录代码130109的上一级目录是1301,而1301的上一级目录是13,也就是说根据目录权限表中的那条权限记录,可以判断出文件目录表中的4条记录全部符合条件,就是jacky拥有这4条记录的权限.现在要写一条sql语句来列出文件目录表中jacky有权限的记录,应该怎么写?
select A.*,B.* from 文件目录表A,目录权限表B where B.账号='jacky' and ...
以上and后面的部分应该怎样写?
id 目录代码 目录名称
1 13 ...
2 1301 ...
3 1302 ...
4 130109 ...目录权限表
id 目录代码 权限 账号
1 13 yes jacky
2 ... ... ...在目录权限中,是包含了下一级目标的权限的.
而在目录表中,目录代码130109的上一级目录是1301,而1301的上一级目录是13,也就是说根据目录权限表中的那条权限记录,可以判断出文件目录表中的4条记录全部符合条件,就是jacky拥有这4条记录的权限.现在要写一条sql语句来列出文件目录表中jacky有权限的记录,应该怎么写?
select A.*,B.* from 文件目录表A,目录权限表B where B.账号='jacky' and ...
以上and后面的部分应该怎样写?
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
0139 0140 ....第二级目录的代码
01390001 01390002 ....第三级目录的代码
013900010001 013900010002 ......也就是说,每一级目录的代码都是以父一级代码为开头,然后再加上4位数作为代码的.所以,假如jacky拥有目录01390001 或者目录0139 的权限,那么他显然肯定具有第三极目录的权限,父一级的权限包含子一级的权限.