日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Mysql sql语句递归查询

發布時間:2023/12/13 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 Mysql sql语句递归查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.今天接到任務要寫一個sql來找出登陸人的部門層級關系,這是寫完的sql,主要用到了sql遞歸查詢,今天記錄一下。

CREATE FUNCTION `GET_LX_DEPTNAME`(`loginId` bigint) RETURNS varchar(21845) CHARSET utf8
BEGIN
DECLARE sTemp_level VARCHAR(500);
DECLARE sTemp_id VARCHAR(500);
DECLARE sTemp_name VARCHAR(500);
DECLARE lx_dept_id VARCHAR(500);
DECLARE lx_dept_name VARCHAR(21845);
DECLARE sTemp_count int;

#先判斷登錄人
select A.GROUP_LEVEL ,A.PARTY_ID,A.GROUP_NAME into sTemp_level ,sTemp_id ,sTemp_name -- ,A.GROUP_NAME,B.PARTY_ID_FROM AS HR_ID
from HR_ORGANIZATION a,COM_PARTY_RELATIONSHIP b,ep_r_user_login c
where A.PARTY_ID = B.PARTY_ID_FROM AND B.PARTY_ID_TO = C.PARTY_ID
AND B.RELATIONSHIP_TYPE_ID = 3 and b.thru_date > sysdate() and a.THRU_DATE > sysdate()
and (b.PRIORITY_TYPE_ID=0 or b.PRIORITY_TYPE_ID is null) -- 任職部門
and c.LOGIN_ID = loginId;

set sTemp_count:=0;
#獲取工程系統
set lx_dept_id:=sTemp_id;
set lx_dept_name:=sTemp_name;
WHILE (sTemp_id <> 3 or sTemp_level is null) and sTemp_count<20 DO -- parytid =3說明是總公司

set sTemp_count:=sTemp_count+1;

SELECT C.PARTY_ID,ifnull(GROUP_LEVEL,1) ,C.GROUP_NAME into sTemp_id ,sTemp_level ,sTemp_name
FROM HR_ORGANIZATION C ,COM_PARTY_RELATIONSHIP B
where B.PARTY_ID_TO = sTemp_id
AND B.RELATIONSHIP_TYPE_ID = 1
AND C.FROM_DATE <= sysdate() AND C.THRU_DATE >= sysdate()
AND B.FROM_DATE <= sysdate() AND B.THRU_DATE >= sysdate()
AND B.PARTY_ID_FROM = C.PARTY_ID;
# set lx_dept_id:=CONCAT_WS(',',lx_dept_id,sTemp_id);
set lx_dept_name:=CONCAT_WS('-',sTemp_name,lx_dept_name);
# set lx_dept_name:=sTemp_name;
END WHILE;

return lx_dept_name;

END

總結

以上是生活随笔為你收集整理的Mysql sql语句递归查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。