1
讓我們假設我有一張代表僱員和他們之間關係的人(老闆,下屬)。但沒有單根元素(有超過1行沒有關鍵指向老闆)。我可以寫一個特別的人告訴我誰是他最高級主管的sql語句嗎?達到遞歸關係的根
這裏是示例表
id, boss_fk
1
2 1
3
4 2
5 4
6 3
所以例如用於僱員ID = 6應該是3,而ID = 5應該是1(因爲5-> 4-> 2-> 1)。
讓我們假設我有一張代表僱員和他們之間關係的人(老闆,下屬)。但沒有單根元素(有超過1行沒有關鍵指向老闆)。我可以寫一個特別的人告訴我誰是他最高級主管的sql語句嗎?達到遞歸關係的根
這裏是示例表
id, boss_fk
1
2 1
3
4 2
5 4
6 3
所以例如用於僱員ID = 6應該是3,而ID = 5應該是1(因爲5-> 4-> 2-> 1)。
末約遞歸操作DB2-IDUG webminar會談在DB2:http://www.idug-db2.com?commid=105565
或者,如果你願意,你可以創建一個遞歸存儲過程:https://www.ibm.com/developerworks/community/blogs/SQLTips4DB2LUW/entry/recursive_sql_pl?lang=en_us
哪些DBMS您使用的? Postgres的?甲骨文? –
我正在使用IBM的DB2。 – abc
因爲(id = 3)對於boss_fk具有空值,所以它看起來好像(僱員id = 6)確實具有(root = 3)。 (好吧,空白或空白或任何價值是什麼。)這就是你知道你達到你的'根'。這與你知道你已經達到'root'(id = 1)的方式是一樣的。 – user2338816