会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> 数据库技术专区 >> MySQL 论坛 >> 用mysql写应该如何写分层查询?谢谢! - MySQL 论坛
首页
中资源
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 298 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:用mysql写应该如何写分层查询?谢谢! 悬赏分50 [提问中] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 cctv_cc 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:151
  专家分:0
  提问帖:1/0
  回答帖:0
  总帖数:1
  经验值:53
  注 册:2008-9-11
给cctv_cc发送一个短消息 把cctv_cc加入好友 查看cctv_cc的个人资料 搜索cctv_cc在MySQL 论坛的所有贴子 引用回复这个贴子 回复这个贴子楼主

发贴心情 用mysql写应该如何写分层查询?谢谢!

有两个表,“学生信息表”,“单位信息表” 
学生信息表Student: 
id: “学号” 
sname:“姓名” 
did:  “单位信息号” 
====================== 
单位信息表Department: 
id:”学校id号“ 
dname:”系名“ 
parsentid "上级id号" 


Department表里数据 
id  dname              parsentid 
1    北京                      0 
2    丰台区                    1 
3    丰台xx小学                2 
4    xx省                      0 
5    xx省xx市                4 
6    xx省xx市zz区            5 
7    xx省xx市zz区xx小学      6 
8    海淀区                  1 
9    海淀xx小学            8 

Student:表里数据 
id    sname          did 
1      甲              3 
2      乙              6 
3      丙              9 
4      丁              6 

当查询北京时  
结果 
甲  丰台区 
丙  海淀区 
查询丰台区时 
甲  丰台xx小学 

同样查询xx省时 
结果 
乙    xx市 
查到市时 
该市下的区出现。 

我用mysql这个sql应该怎么写

发帖:2008-9-11 16:01:00
  鲜花(0)  鸡蛋(0)
 一直学下去 美女呀,离线,快来找我吧!双鱼座1987-3-17
  
  
  头 衔:快乐鱼儿
  等 级:职业侠客
  积 分:6734
  专家分:3012
  提问帖:5/5
  回答帖:301
  总帖数:462
  经验值:691
  注 册:2008-7-1
给一直学下去发送一个短消息 把一直学下去加入好友 查看一直学下去的个人资料 搜索一直学下去在MySQL 论坛的所有贴子 引用回复这个贴子 回复这个贴子2

发贴心情 


select s.sname, d.dname from student s, department d where 
exists(select 1 from department d2 where d2.id = d.parsentid and d2.dname = '北京' ) and 
 exists(select 1 from department d3 where (d.id = d3.id or d.id = d3.parsentid )and d3.id=s.did)

年轻没有失败,成功没有终点!

发帖:2008-9-11 17:02:00
 rstone 帅哥哟,离线,有人找我吗?
  
  
  等 级:初出江湖
  积 分:319
  专家分:70
  提问帖:0/0
  回答帖:7
  总帖数:8
  经验值:58
  注 册:2008-11-17
给rstone发送一个短消息 把rstone加入好友 查看rstone的个人资料 搜索rstone在MySQL 论坛的所有贴子  引用回复这个贴子 回复这个贴子3

发贴心情 

多少层结构不知道
我觉得应该首先些个程序把所要搜索的所有符合条件的部门ID找出
其次
select s.name,d.name from student as s,department as d where s.did in (函数找出的所有ID) and s.did=d.id and d.id=(select d1.id from department as d1 from d1.parsentid=(select d2.id from department as d2 where d2.dname='北京市'));
发帖:2008-11-17 14:38:00

本主题贴数3,分页:[返回帖子列表] [上一页] [1] [下一页]

 *提问结帖:将分数分配给帮助了你的网友 - [论坛积分规则]

右边列出了所有回答过你提问的帐号,请将分数分配给回答正确的用户。

提示:
    您的积分在提问时已经扣除,所以结帖分配积分并不会减少您的现有积分。
    在得到帮助后请及时结帖,否则会受到斑竹的处罚[扣除积分]。

如果某个用户不分配则留空,仅填写要分配的用户即可。

总分数:50   已分配:0   可分配:50





 *快速回复:用mysql写应该如何写分层查询?谢谢!  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告