有4张表.文件表file;文件夹表folder;文件下载记录表file_down;用户表pub_user oracle库文件表file
-------------------
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) 文件夹表folder
---------------
pid(文件夹编号) ppid(文件夹父编号) pname(文件夹名称) 文件下载记录表file_down (存储已下载文件的文件编号及用户id)
------------------------
userid(用户id) fid(文件编号) 用户表pub_user
----------------
userid(用户id) username(用户名) 我需要求出当前用户(给定一用户id)没有下载的文件列表,求出的显示为
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) pname(文件夹名称) ppath(文件夹路径)
1 中国人.txt 阿光 90 文件资料 共享信息\本部信息\...\文件资料 我的sql:
select * from file ff,folder ffder where ff.id not in(select fd.fid from file_down fd where fd.userid = 89) and ff.pid = ffder.pid 我只求出了以下信息,没求出ppath(文件夹路径)
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) pname(文件夹名称)
-------------------
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) 文件夹表folder
---------------
pid(文件夹编号) ppid(文件夹父编号) pname(文件夹名称) 文件下载记录表file_down (存储已下载文件的文件编号及用户id)
------------------------
userid(用户id) fid(文件编号) 用户表pub_user
----------------
userid(用户id) username(用户名) 我需要求出当前用户(给定一用户id)没有下载的文件列表,求出的显示为
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) pname(文件夹名称) ppath(文件夹路径)
1 中国人.txt 阿光 90 文件资料 共享信息\本部信息\...\文件资料 我的sql:
select * from file ff,folder ffder where ff.id not in(select fd.fid from file_down fd where fd.userid = 89) and ff.pid = ffder.pid 我只求出了以下信息,没求出ppath(文件夹路径)
fid(文件编号) name(文件名) username(上传人名称) pid(文件夹编号) pname(文件夹名称)
1 第一级目录
2 1 第二级目录
3 2 第三级目录
4 3 第四级目录
5 4 第五级目录
select pname from folder f start with f.pid = 5 connect by prior f.ppid = f.pid;
结果:
PPID
第五级目录
第四级目录
第三级目录
第二级目录
第一级目录
PPID
第一级目录
第二级目录
第三级目录
第四级目录
第五级目录可以再写一个存储过程将再将各级目录串起来.