select * from 部门表, 工资表, 基本信息表 where 部门表.部门=left('你当前tree指向的部门',4)
select * from 工资表 where left(部门代码,length(选中tree上部门代码))=选中tree上部门代码
select * from 工资表 where left(部门代码,length(选中tree上部门代码))=选中tree上部门代码! 以上代码如果说基本信息表中的一个字段是用部门代码而不是用部门名称的话,那将是很好实现的,可是我的基本信息表(包括个人的一些基本信息字段,部门项用部门名称为字段,而不是编号),工资表中和基本信息表挂钩的字段是员工编号,所以要想根据部门名称来查询符合条件的数据这个代码好像还是不行。
上面的有点问题 楼主的部门表已经形成了树型结构,所以如果你在tree上选中了 0002 部门二 那么只在部门表中找出部门代码左边四位是0002的代码就OK,然后再关联工资和基本信息表就OK select * from 部门表,工资表,基本表 where left(部门表部门代码,length(选中tree上部门代码))=选中tree上部门代码 and <其它条件>.
为什么不行呢? 首先你是先在部门表中先找出该树下的所有下层节点,这个依据部门代码是没问题的 然后你再用结果去关联基本信息表(关联字段是部门名称),找出所涉及部门的所有人员的员工编号,然后再以结果集去关联工资表(关联字段是员工编号),不就OK?select * from 部门表 a left join 基本信息表 b on a. 部门名称=b.部门名称 left join 工资表 c on b.员工编号=c.员工编号 where left(a.部门编号,length(选中tree上部门编号))=选中tree上部门编号
用query.sql
select * from 部门表, 工资表, 基本信息表 where 部门表.部门='你当前tree指向的部门' and (其他约束关系)
0001 部门一
0002 部门二
000201部门二科室一
000202
,,,,,,
如果按照你这么说:部门表.部门=选中tree上部门名,那么只能查询和这个选中的部门一个名字的相关信息,比如我选中的是部门二,那么只能查询出部门二的内容,但是像他们的部门是部门二科室一的就差不出来了
以上代码如果说基本信息表中的一个字段是用部门代码而不是用部门名称的话,那将是很好实现的,可是我的基本信息表(包括个人的一些基本信息字段,部门项用部门名称为字段,而不是编号),工资表中和基本信息表挂钩的字段是员工编号,所以要想根据部门名称来查询符合条件的数据这个代码好像还是不行。
楼主的部门表已经形成了树型结构,所以如果你在tree上选中了 0002 部门二
那么只在部门表中找出部门代码左边四位是0002的代码就OK,然后再关联工资和基本信息表就OK
select * from 部门表,工资表,基本表 where left(部门表部门代码,length(选中tree上部门代码))=选中tree上部门代码 and <其它条件>.
首先你是先在部门表中先找出该树下的所有下层节点,这个依据部门代码是没问题的
然后你再用结果去关联基本信息表(关联字段是部门名称),找出所涉及部门的所有人员的员工编号,然后再以结果集去关联工资表(关联字段是员工编号),不就OK?select * from 部门表 a
left join 基本信息表 b on a. 部门名称=b.部门名称
left join 工资表 c on b.员工编号=c.员工编号
where left(a.部门编号,length(选中tree上部门编号))=选中tree上部门编号
如果数据库结构是id,parentid,那么要获得所有下层又是另外的方法了.