我有這樣的表結構:ID Name ParentId-------------------------1 Root 02 Business 13 Finance 24 Stock 35 Any 36 One 07 Two 6有沒有辦法將所有關系都放在一行中?像這樣:+------------------------------------------------------------------------------------+|ID | NAME | ID | NAME | ID | NAME | ID | NAME ||----------|------------|-----------|-----------|----------|---------|--------|------|| 1 | Root | 2 | Business | 3 | Finance | 4 | Stock|| 1 | Root | 2 | Business | 3 | Finance | 4 | Any | | 1 | One | 6 | Two | | | | |
2 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
假設您的表的名稱為“htable”,并且只要有多達四 (4) 個層次結構,就可以使用自連接來完成:
SELECT level1.ID, level1.Name, level2.ID, level2.Name, level3.ID, level3.Name, level4.ID, level4.NameFROM htable AS level1 LEFT JOIN htable AS level2 ON level1.ID = level2.ParentId LEFT JOIN htable AS level3 ON level2.ID = level3.ParentId LEFT JOIN htable AS level4 ON level3.ID = level4.ParentId;

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
SELECT??level1.ID,?level1.Name, ????????level2.ID,?level2.Name, ????????level3.ID,?level3.Name, ????????level4.ID,?level4.NameFROM?htable?AS?level1 LEFT?JOIN?htable?AS?level2?ON?level1.ID?=?level2.ParentId LEFT?JOIN?htable?AS?level3?ON?level2.ID?=?level3.ParentId LEFT?JOIN?htable?AS?level4?ON?level3.ID?=?level4.ParentId;
該查詢返回不必要的 NULL,我只需要打印紅色方形行。
- 2 回答
- 0 關注
- 143 瀏覽
添加回答
舉報
0/150
提交
取消