{
$data = dbGetList("record","pid=".$pid)
foreach($data as $v)
{
$str=""
for($i=0$i<$level$i++)
{
$str.="|-"
}
$v['name']= $str.$v['name']
$arr[] = $v
$arr = getcategory($v['id'],$arr,$level+1)
}
return $arr
}
select A.pid as 编号,A.name as 州,B.国家,pidfrom A
inner join
(select id,name as 国家,pid form A where pid ==0) B --筛选出国家的行,在连接
on A.pid =B.pid
where A.pid = '0'
试下这个可以吗?把A替换成表名,B不管
:号加上变量在hibernate是做为SQL语句中的参数占位符用的,比如 :name ,最后就可以用query.setParameter("name","jack")你这SQL中加了这个@r:= ? ,问号前面有空格,估计这有问题。
而且就因为这个原因,觉得你这种语句在hibernate中不能顺利执行。
可以调用存储过程来执行这个查询。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)