自己写了一个子查询,实现了,sql语句太长,而且没有用到一对多映射,有其他方法实现吗?
贴出sql
来自炫酷的 NutzCN
String sqlStr =
"select BasUnit.UnitId,BasUnit.UnitName,BasUnit.AddUserID,BasUnit.AddTime,BasDep.DepName,BasDep.SeqNum,SysUser.LoginName from BasUnit LEFT JOIN SysUser on BasUnit.AddUserID=SysUser.UserID LEFT JOIN BasDep on BasUnit.UnitID=BasDep.UnitID where BasUnit.IsDelete=0 and BasUnit.unitId ="+user.getUnitid()+"ORDER BY BasDep.SeqNum ASC;"
不是很理解,还有个sql语句更长.
学校和校区都是一个实体类,部门一个实体类,要展示学校树结构,按校区及部门顺序,学校里面可能几个校区和部门,校区里面又含部门,这个sql语句含子查询.
String sqlStr = "select s.UnitId,s.UnitName,s.AddUserID,s.AddTime,BasDep.DepName,c.UnitId CampusId,c.UnitName CampusName,c.CampusSeqNum CampusSeqNum,c.DepName CampusDepName,c.DepSeqNum,SysUser.LoginName from BasUnit s LEFT JOIN SysUser on s.AddUserID=SysUser.UserID LEFT JOIN BasDep on s.UnitID=BasDep.UnitID LEFT JOIN (select BasUnit.UnitId,BasUnit.ParentUnitID,BasUnit.UnitName,BasUnit.SeqNum CampusSeqNum,BasDep.DepName,BasDep.SeqNum DepSeqNum from BasUnit LEFT JOIN BasDep on BasUnit.UnitID=BasDep.UnitID) AS c on s.UnitID=c.ParentUnitID where s.IsDelete=0 and s.UnitID="+user.getUnitid()+" ORDER BY BasDep.SeqNum,c.CampusSeqNum,c.DepSeqNum;"
@qq_9ad759a9 其实,没必要用join啦,一个个表查
来自炫酷的 NutzCN