0

我想要一些关于SQLJ的帮助(是的......)。我正在谷歌搜索如何在这个 inline-java SQL 中重现递归 SQL 查询。也欢迎参考,因为它也很难找到......

我的 SQL 查询:

WITH attachedemails(id, subject, filename) 
     AS ( 
        -- Ancora (224)   
        SELECT email 
        FROM   (SELECT addressee.email AS email 
                FROM   addressee 
                WHERE  addressee.email->from 
                    IN (SELECT address 
                        FROM   use 
                        WHERE use.user->nickname = User.nickname <arg>) 
                UNION 
                SELECT addressee.email 
                FROM   addressee 
                WHERE  addressee.to 
                    IN (SELECT address 
                    FROM   use 
                    WHERE use.user->nickname = = User.nickname <arg>))) 
               AS t 
        WHERE  email->DATE >= FROM <arg> AND  email->DATE <= TO <arg> )           

         UNION ALL 

         SELECT m.id 
         FROM   email AS m, 
                attachedemails AS c 
         WHERE  m.contained_in = c.id 
                AND m.DATE >= FROM <arg> AND  email->DATE <= TO <arg> )) 

基本上,我收到了来自某个给定用户的所有电子邮件,并在其他电子邮件中附加了电子邮件。我标记了我的 Java 参数,我应该用它来过滤结果。

我知道,为了使用 SQLJ 返回多行,我们需要一个迭代器,并且我可以在子查询中对它们进行不同级别的处理,但是递归非常难以模拟。也许还有其他一些我不知道的专门针对 SQLJ 的构造。我希望有人能帮帮忙!

4

0 回答 0