【问题标题】:Make a JOIN of two separated DQLs将两个单独的 DQL 连接起来
【发布时间】:2013-07-19 13:38:06
【问题描述】:

由于平台的限制,我们无法对一个选择进行子选择。这是我们的 DQL:

   SELECT attr_nombre FROM lis_mindo_abogados WHERE attr_codigo_usuario in (Select attr_abogadoppal_code FROM me_mindo_mail where r_object_id='@r_object_id')

因此,我们计划对这两个分离的 DQL 进行 JOIN:

   SELECT attr_abogadoppal_code, r_object_id FROM me_mindo_mail WHERE r_object_id='@r_object_id'

   SELECT attr_nombre FROM lis_mindo_abogados WHERE attr_codigo_usuario in ('CODE_ABOGADO1','CODE_ABOGADO2','CODE_ABOGADO3')

对于一个 r_object_id,我们有几个 attr_abogadoppal_code (CODE_ABOGADO1/2/3)。

是否可以对这两个分离的 DQL 进行任何类型的 JOIN?

感谢您的宝贵时间和帮助!

【问题讨论】:

    标签: sql subquery dql documentum documentum6.5


    【解决方案1】:

    可能是这样:

    SELECT l.attr_nombre
    FROM lis_mindo_abogados l, me_mindo_mail m
    WHERE l.attr_codigo_usuario = m.attr_abogadoppal_code
    AND m.r_object_id='@r_object_id'
    

    【讨论】:

    • 谢谢!思路是这样的,但是 CODE_ABOGADOn 是第一个 DQL 的结果,我们不知道每种情况下能得到多少结果...1,5,9....
    • 我已经在我的 DQLTester (Documentum) 中对其进行了测试,并说这个错误:“在附近发生解析错误(语法错误):SELECT l.attr_nombre FROM lis_mindo_abogados l JOIN”我应该为 Documentum 查询写一个特殊字符?据我所知,LEFT JOIN 是标准的 JOIN,正如这里所说的 (docs.doctrine-project.org/projects/doctrine1/en/latest/en/…)。
    • 所以,我试着把这个: SELECT l.attr_nombre FROM lis_mindo_abogados l LEFT JOIN me_mindo_mail m on l.attr_codigo_usuario = m.attr_abogadoppal_code AND m.r_object_id='@r_object_id' 和错误现在说:[DM_QUERY_E_REPEATING_USED]错误:“您指定了不允许的重复属性(attr_abogadoppal_code)。”请问有什么建议吗?
    • 我在这个特定的查询中没有看到任何重复的冲突。它可能在代码库的某个地方出现问题。确保您在代码中的任何地方都使用 table\field 别名。 IE。 attr_abogadoppal_code 字段在所有地方都有表别名 (X.ttr_abogadoppal_code)。
    【解决方案2】:

    由于 attr_abogadoppal_code 是重复的(错误消息是这样说的),它需要 ANY 关键字:

    SELECT l.attr_nombre
    FROM lis_mindo_abogados l, me_mindo_mail m
    WHERE l.attr_codigo_usuario = ANY m.attr_abogadoppal_code
    AND m.r_object_id='@r_object_id'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 2015-06-15
      • 1970-01-01
      • 2020-11-10
      相关资源
      最近更新 更多