MYSQL反向“文件系统”迭代

时间:2014-09-30 23:17:18

标签: mysql sql jasper-reports

我正在使用 iReport 来构建报告,我正在尝试找到父节点" group_name"基于给定的parent_group_id的值,并返回父值作为子值的值。

例如:

表: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'第二项,我希望它返回"音频",而不是"音频线和位"。如果我想获得' group_name"在第三项中,它还应该返回 - 其他一些未列出的值 - 等等

有没有办法用 JasperReports 中的任何xml,sql或 Java 功能执行此操作,还是可以单独使用SQL?

我基本上希望以递归的方式向后遍历多个文件系统(将会有超过1" root"文件,但名称不同),并且对于每个孩子,我想要那个孩子& #39; s root" group_name"替换孩子的实际" group_name"

编辑 - 我用实际值的样本更新了表 - 注意它们中的一些具有相同的" parent_group_id"作为null parent_group_id的那个?我想要那些,而不是说"音频线和比特"等,说"音频",目录的父母

1 个答案:

答案 0 :(得分:0)

您可以通过SQL方式获取它。 试试吧:

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