【问题标题】:UNION query with Propel ORM使用 Propel ORM 的 UNION 查询
【发布时间】:2009-12-31 14:34:34
【问题描述】:

我正在尝试使用 Propel ORM 创建一个 UNION 查询,例如

$criterion1 UNION $criterion2

有人知道怎么做吗?

【问题讨论】:

    标签: orm propel


    【解决方案1】:

    您不能使用 Criteria 创建联合查询。相反,您可以create the SQL string yourself,并使用它来为对象补水。如果您仍想使用 Criteria 来构建联合查询的两个部分,可以致电 BasePeer::createSelectSql(Criteria $criteria, array &$params)。这将在需要由 PDO 层设置的值的位置返回一个带有? 的 SQL 字符串。第二个参数是一个将用这些参数填充的数组(这就是您通过引用传递它的原因)。您可以将其传递给PDOStatement::execute(array $params) 函数。

    【讨论】:

    【解决方案2】:

    想到了两个解决方案。首先,简单的方法是运行两个单独的调用,然后使用array_merge 将它们粘合在一起。根据您的用例,这可能不像您想象的那么耗时。

    此外,如果您在编写查询时遇到困难,请使用您想要的查询编写一个视图,然后将其放入您的 Propel 模型中。我在 Propel/symfony 1.x 中有一堆非常复杂的主从屏幕,这种方法很有效。它确实有点违背使用 ORM 的理念,但是,偶尔打破规则很有趣! :)

    【讨论】:

      猜你喜欢
      • 2011-07-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      相关资源
      最近更新 更多