例如在程式中進行以下的作業:
1 2 3 4 | while ( true ) { //SELECT ID, Parent, Name FROM Table1 WHERE Parent=@ID } |
現在有一種 SQL 的做法,可一次查詢出與該 ID 相關的資料.
例如: (此例是向上搜尋)
1 2 3 4 5 6 7 8 9 10 11 | --WITH Table1Tree-->Table1Tree是具有ID,Parent,Name這三個欄位的一個暫時使用的表格 WITH Table1Tree (ID,Parent, Name ) AS ( --查詢該Node的資料 SELECT ID,Parent, Name FROM Table1 WHERE ID=100 UNION All --將主表格與WITH的表格做Join, 並以Parent與ID做為Join的Key SELECT a.ID,a.Parent,a. Name FROM Table1 a INNER JOIN Table1Tree b on b.Parent=a.ID ) --從WITH的表格中查詢出與該ID相關的Parent資料 SELECT ID,Parent, Name FROM Table1Tree |
沒有留言:
張貼留言