如何在doctrine查询symfony 1.4中使用union?

时间:2012-02-27 22:24:59

标签: doctrine symfony-1.4 union

我希望在mysql中有这样的查询:

选择ax,ay,a.foo,sum(a.bar)为bar_sum from mytable a groupby ax union select ax,ay,a.bar,sum(a.foo)as foo_sum from mytable a groupby AY

这种格式是真的吗?以及如何在symfony中将其转换为教义查询?

非常感谢

1 个答案:

答案 0 :(得分:6)

我认为使用DQL (doctrine query language)不支持UNION。但看起来有人能够解决这个问题,使用了令人讨厌的heredoc

或者,您可以在对象对等类中添加自定义方法,并在本机sql中编写查询。

- 编辑 -

使用以下作为示例(未经测试):

// Assuming you have the default doctrine setup, where non-object classes are
//  appended with Table (your object being Foo)
class FooTable
{
    public static function getFooBarUnion()
    {
        $sql = "select a.x, a.y, a.foo, sum(a.bar) as bar_sum from mytable a groupby a.x union select a.x, a.y, a.bar, sum(a.foo) as foo_sum from mytable a groupby a.y";

        $results = Doctrine_Query::create()->query($sql);

        return $results;
    }
}