1. 程式人生 > >一條SQL語句查詢無限遞迴樹所有資料

一條SQL語句查詢無限遞迴樹所有資料

 許可權樹:
SELECT PERMISSIONID, PARENTID, T.ITEMNAME,T.DESCRIPTION
  FROM T_PERMISSION T
 START WITH PARENTID =
            (SELECT PARENTID FROM T_PERMISSION WHERE PERMISSIONID = 0)
CONNECT BY PRIOR PERMISSIONID = PARENTID
 ORDER BY PARENTID


機構樹:

SELECT AGENCYID, PARENTID, T.AGENCYNAME
  FROM T_AGENCY T
 START WITH PARENTID =
            (SELECT AGENCYID FROM T_AGENCY WHERE AGENCYID = 0)
CONNECT BY PRIOR AGENCYID = PARENTID
 ORDER BY PARENTID

以上是兩個樣例,而不是需要兩個語句,只用一條語句即可。

定義資料庫的時候需要定義一個ID和一個父ID,這樣就可以形成無限遞迴樹了。

相關推薦

SQL語句查詢無限所有資料

 許可權樹:SELECT PERMISSIONID, PARENTID, T.ITEMNAME,T.DESCRIPTION FROM T_PERMISSION T START WITH PARENTID = (SELECT PARENTID F

使用sql語句查詢兩個表的某個欄位為某個值時

使用一條sql語句查詢這兩個表的分數相同的人的名字(使用聯合查詢)    create table a( id int(10), score int(3), name varchar(20), )charset utf8; create table

MyBatis中的多表操作情形:一對一(方式1:sql語句查詢,MyBatis3.0可以用association和collection標籤)

MyBatis支援多表操作,即可以將資料庫中多表的關係對映到物件之間的關係中 表與表之間的關係可以有:一對一,一對多,多對多 關係一演示案例:人和身份證是一對一的,分別建兩個表person和card,其中person的cardid欄位外來鍵關聯card的id,

SQL語句 查詢出每門課都大於80分的學生姓名

用一條SQL語句 查詢出每門課都大於80分的學生姓名 name   kecheng   fenshu  張三     語文            81 張三     數學            75 李四     語文            76 李四     數

面試題:用sql語句查詢出“每門”課程都大於80分的學生姓名

分析:要查詢出每門課程都大於80分的學生姓名,因為一個學生有多門課程,可能所有課程都大於80分,可能有些課程大於80分,另外一些課程少於80分,也可能所有課程都小於80分,那麼我們要查找出所有大於80分的課程的學生姓名,我們可以反向思考,找出課程小於80分(可以找出有一些課

SQL語句查詢分組前三名資料

表簡單表示為: EmpNo 員工編號EName 員工姓名Sal   員工工資DepNo 部門編號 表名:T   用一條SQL語句在員工表中查詢出來每個部門公司前三名的資料 select a.DepNo,a.Sal,b.Sal,c.Sal from (select

SQLSQL語句 查詢出每門課都大於80分的學生姓名

表 student    (用子查詢搞定)           name kecheng fenshu                   張三 語文 81                   張三 數學 75                   李四 語文 76    

SQL語句查詢張表得到不同條件的多個結果

一條語句,12個結果,12行,比較方便與1個dataGridView的現實。 我是用在C# Winform上的3層結構的開發上,用這個實現統計12個月每個月的銷售總額。現在就差統計表了,GDI功底比較差,還在研究呵呵。 SELECT A1.date 日期, SUM(A1.s

sql語句查詢所有葉子的指定父節點的下級節點

一條sql語句查詢出樹中所有葉子的指定父結點的下級結點 或者說 查詢出樹中指定父結點下的下級結點與所有對應的葉子 如指定的樹的結點Init_Parent_ID為1, 結點Init_Parent_ID為1的下級結點為: select  parent_id  ,

php中mysqlsql語句查詢所有符合條件的資料,該怎麼寫?

假如一個表裡有個classid欄位是類別的id,我想用一條sql語句查出classid=5的所有資料的id該怎麼查呢?正常是要迴圈,放到數組裡的吧 如圖,我想查詢classid=2的對應所有id,用

SQL語句面試題:求選修所有課程的學生

前幾天求職面試,有一道SQL題:給出三個表:學生、課程、成績,求選修了所有課程的學生。一道看似很簡單的問題,把我難住了,我改了又改,塗塗畫畫,抓耳撓腮,因為試卷沒有多少空白位置了,最後只好放棄。心情大受影響,儘管最後還是獲得offer。但是心中有愧呀!於是在機器上試了試:先建

SQL語句實現查詢成績-60、60~80、+80的人數的方法

總結一下學到的一個SQL方法。下面我建立一個數據表: SELECT * FROM students; 可以看到資料表中存在六條資料,如果使用傳統的查詢方法,我們需要三條SQL語句,分別是: select count(*) from students where score<6

mysql中sql語句中使用多個count關聯查詢多張表

在給公司寫程式碼的過程中忽然發現在sql語句中碰到一些小問題,雖然最終自己解決了,但是不得不說好不容易啊,故寫此部落格提醒自己,以免日後再在此處浪費時間。 需求: 有兩張表,分別是marketChan

sql語句分組、升序、指定查詢

l 假定資料表結構為:ID,生成時間,數量,購買者ID,商品ID。 l 寫一段SQL指令碼,實現根據日期分組功能。規則: n 日期,ID升序排序 n 查詢每組前5條的訂單資料,不足5條,則有幾條查幾條 l 資料示例: ID 日期 數量        1 2

關於postgressql語句中子查詢的返回值不止一個,且拼接成相關規則的字串

這個問題之前好像碰到過,後來分成兩次查詢,最後把相關資料有拼接了一下,當時算是矇混過關了。 但是古語有云:自己挖的坑,含著淚也要給填了。 這次有碰到這個問題,但是不想還查兩遍了,就查閱相關資料把它解決了~! 資料庫postgreSQL select array_to_str

SQL實現MYSQL的查詢

ID 父ID 父到子之間級數 父到子路徑 ------ ------ ------------ --------------- 1 0 0 ,0 2 1 1

SQL語句查出每門課都大於80分的學生的姓名

src exist spa weight utf8 exists null ont http 用一條SQL語句查出每門課都大於80分的學生的姓名,數據表結構如下: 建表SQL如下: SET FOREIGN_KEY_CHECKS=0; -- --------------

如何sql語句查找表中第二大值

roman splay 排名 數據庫 依然 sel col eight over 例1: 一個Customer表,一個字段Value,現請問如何查到Value中第二大的值 select max(value) from Customer

sql語句update 多記錄

key mysq ech tle date class spl imp set UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END

cakephp獲取最後sql語句

ger figure manage 設置 語句 代碼 sql語句 echo data 1.在app\config\core.php中設置Configure::write(‘debug‘, 2); 2.頁面上追加如下代碼: $dbo = ConnectionManage