當前位置:首頁 » 編程語言 » sql下級查詢
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql下級查詢

發布時間: 2022-02-25 22:40:57

sql如何取某個部門的所有子部門

假設表名為 tb, id=001
select * from tb where parentid=(select parentid from tb where id=001)
上面的語句只能找到下級部門,三級就找不到了。建議部門編碼使用層級式的,這樣就很容易了

Ⅱ sql server 中如何實現查找下級分類以及下下級

在文件 includes/lib_goods.php 最後加上

//***調用商品分類指定分類下級分類
functionget_parent_id_tree($parent_id)
{
$three_c_arr=array();
$sql='SELECTcount(*)FROM'.$GLOBALS['ecs']->table('category')."WHEREparent_id='$parent_id'ANDis_show=1";
if($GLOBALS['db']->getOne($sql))
{
$child_sql='SELECTcat_id,cat_name,parent_id,is_show'.
'FROM'.$GLOBALS['ecs']->table('category').
"WHEREparent_id='$parent_id'ANDis_show=1ORDERBYsort_orderASC,cat_idASC";
$res=$GLOBALS['db']->getAll($child_sql);
foreach($resAS$row)
{
if($row['is_show'])
$three_c_arr[$row['cat_id']]['id']=$row['cat_id'];
$three_c_arr[$row['cat_id']]['name']=$row['cat_name'];
$three_c_arr[$row['cat_id']]['url']=build_uri('category',array('cid'=>$row['cat_id']),$row['cat_name']);
}
}
return$three_c_arr;
}

聲明後用$smarty調用,就是在index.php中加上下面一句:
$smarty->assign('get_parent_id16_tree',get_parent_id_tree(16));//調用父級分類6的下級分類
最後就可以在index.dwt模板文件里開始調用了
<!--{foreachfrom=$get_parent_id16_treeitem=list}-->
<ahref="http://chenlihong89791781.blog.163.com/{$list.url}"target="_blank">{$list.name|truncate:15:true}</a>
|<!--{/foreach}--></div>

Ⅲ SQL語句怎麼獲取下級所有部門

一級部門的所有下級部門就用 like "01-%" 即可,方便實惠。
你現在的編號么,也可以用這個方式轉換一下,例如加個欄位,再把編號都這樣連起來放這個編號里專門做查詢用。

Ⅳ SQL語句查詢出父節點下的所有子節點


createtable##tmp_users(idint,usernamenvarchar(255),parentidint)
declare@IDint
select@ID=idfromt_Userstwhereexists
(select*fromt_Userst2wheret2.id=t.parentidandt2.username='user1')
execAddSons@ID
select*from##tmp_users
droptable##tmp_users


--存儲
createprocereAddSons@idint
as
ifexists(select*fromt_Userswhereparentid=@id)
begin
declare@tmp_IDint
declarecurcursorfor
selectidfromt_Userswhereparentid=@id
opencur
fetchnextfromcurinto@tmp_ID
while@@FETCH_STATUS=0
begin
insertinto##tmp_users
select*fromt_Userstwhereid=@tmp_ID
ifexists(select*fromt_Userswhereparentid=@tmp_ID)
begin
execAddSons@tmp_ID
end
fetchnextfromcurinto@tmp_ID
end
closecur
DEALLOCATEcur
end
--遞歸調用,不知道是否想要這樣

Ⅳ sql 查詢所有最下級元素

我的空間中有一篇關於with 實現sql遞歸查詢的

http://hi..com/micro0369/item/5a89cc277733081e0975086c

Ⅵ sql語句:如何通過id查找所有的子節點

使用SQL遞歸查詢

Declare@IdInt
Set@Id=0;---在此修改父節點
WithRootNodeCTE(D_ID,D_FatherID,D_Name,lv)
As
(
SelectD_ID,D_FatherID,D_Name,0aslvFrom[LFBMP.LDS].[dbo].[LDS.Dictionary]WhereD_FatherIDIn(@Id)
UnionAll
Select[LFBMP.LDS].[dbo].[LDS.Dictionary].D_ID,[LFBMP.LDS].[dbo].[LDS.Dictionary].D_FatherID,[LFBMP.LDS].[dbo].[LDS.Dictionary].D_Name,lv+1FromRootNodeCTE
InnerJoin[LFBMP.LDS].[dbo].[LDS.Dictionary]
OnRootNodeCTE.D_ID=[LFBMP.LDS].[dbo].[LDS.Dictionary].D_FatherID
)
Select*FromRootNodeCTE

;WithTB([Cd_ID],[ConstituteID],[Cd_PID],[Cd_CName],lv)
as(
Select[Cd_ID],[ConstituteID],[Cd_PID],[Cd_CName],0aslvFROM[LFBMP.Center].[dbo].[ConstituteDetail]Where[Cd_PID]=0And[ConstituteID]=4
unionall
SelectA.[Cd_ID],A.[ConstituteID],A.[Cd_PID],A.[Cd_CName],lv+1FROMTBinnerjoin[LFBMP.Center].[dbo].[ConstituteDetail]asA
onTB.[Cd_ID]=A.Cd_PID
)
Select*FromTB

Ⅶ sql查詢: 有上下級關系的表如何連接

select c.班級編號,c.學生編號,d.學生姓名,c.成績
from c, (select * from a,b where a.主鍵 = b.班級主鍵) d
where c.班級編號 = d.班級編號 and c.學生編號 = d.學生編號
order by c.班級編號,c.學生編號

Ⅷ 關於sql的上下級查詢統計(如圖)

selectcode_name,amountfrom
(selectleft(code,2)ascode,ISNULL(SUM(amount),0)asamount
fromagroupbyleft(code,2))astmp
innerjoinbontmp.code=b.code

Ⅸ 高難!小白求救,sql 每層有一到三個下級如何查詢子樹

類似這種語法,你可以參考一下:

WITH leaderCTE as(
SELECT id, name,manager
FROM [lulinghao].[dbo].[YGB]
WHERE name = @name

UNION ALL

SELECT ygb.id, ygb.name,ygb.manager
FROM [lulinghao].[dbo].[YGB] as ygb
inner join leaderCTE lce on lce.manager = ygb.id
)
SELECT case when [id]=100 then 1 when [id]=101 OR [id]=102 then 2 else 3 end as leaderlevel,
name as leadername
FROM leaderCTE

Ⅹ SQL 多級查詢(級數不定)

select * from item where itemID=3 union all
select * from item where FDetail=0 and parentID <(select parentID from item where itemID=3)
and substring(Number,1,2) =(select substring(Number,1,2) from item where itemID=3)
and substring(Number,4,2) =(select substring(Number,4,2) from item where itemID=3);

說下思路,先把自己本身一條找出來,然後找他的上級,看你的數據知道parentID 一定小於本身的parentID ,並且是目錄的話FDetail=0,如果是其上級目錄,他們前邊的01.01什麼的都是一樣的,但是現在有個弊端,就是查詢前,要確定這個itemID=3的是屬於第幾級實體,然後才能採用後邊用多少個substring,另一個表itemID=3的條件沒用,其實就是一個嵌套,你自己寫里邊吧