2014-09-30 48 views
0

我正在使用iReport來建立一個報告,我試圖找到父節點「group_name」價值根據給出的parent_group_id,並返回值的父母,作爲孩子的價值。MYSQL反向「文件系統」迭代

例如:

表:T1

   id     |    parent_group_id   | group_name 
22ba9b80-303d-11e3-8108-002590ac9042 | NULL         | Audio 
37fdf930-34f5-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Cables and bits 
252ecfd0-303d-11e3-8108-002590ac9042 | 25824700-303d-11e3-8108-002590ac9042 | Audio Headphones 
26858630-303d-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Interfaces 
d3e962b0-3dcb-11e3-883d-002590ac9042 | 3aa35f70-3691-11e3-8108-002590ac9042 | Audio Recording Stock 
2d735bc0-303d-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Roadcases 

所以,如果我想獲得的第二項的「組名」,我想它返回「音頻」,而不是「音頻電纜和位「。如果我想獲得第三項的'group_name',它也應該返回一些其他未列出的值,等等

是否有辦法用xml,sql或Java功能與JasperReports的,或者是有可能做單獨的SQL?

我基本上希望通過遞歸多個文件系統向後遍歷(將有超過1「根」的文件,但是,與不同名稱),並且對於每個孩子,我希望該孩子的根「group_name」替換孩子的實際「group_name」

Edit-i用實際值的示例更新了表格 - 注意其中一些具有與parent_group_id爲空的相同的「parent_group_id」?我想要那些,而不是說「音頻電纜和位」等,說「音頻」,目錄的父親

回答

0

你可以通過SQL方式獲得它。 嘗試:

SELECT parent.group_name FROM Group child LEFT JOIN Group parent ON (child.parent_id = parent.id) WHERE child.id = '01'; 
+0

還挺有想法是正確的,但不是很那裏 - 我期待通過遞歸多* *文件系統向後遍歷(將有超過1「根」的文件,但是,與不同名稱),並且爲了每個孩子,我希望該孩子的根「group_name」替換孩子的實際「group_name」 – user3669901 2014-10-01 15:49:41