Symfony的学说忽略了我的条款的一部分?

时间:2013-03-06 20:17:12

标签: sql doctrine symfony-1.4 having

我有以下代码:

$sub_questions_no_restricted = Doctrine_Query::create()
                ->select("q2.id")
                ->from("question q2")
                ->leftJoin("q2.CountryRestrictions cr2")
                ->groupBy("q2.id")
                ->having("count(cr2.country_iso)=0");

我希望得到所有不受国家限制的问题

但symfony不生成正确的SQL,忽略了having子句的一部分。

生成的DQL和SQL是:

DQL=SELECT q2.id FROM question q2 LEFT JOIN q2.CountryRestrictions cr2 GROUP BY q2.id HAVING count(cr2.country_iso)=0
SQL=SELECT q.id AS q__id FROM question q LEFT JOIN country_restriction c ON q.id = c.question_id GROUP BY q.id HAVING count(c.country_iso)=)

SQL忽略“0”,并添加“)”

我做错了什么? 它是一个学说问题? 有什么建议吗?

1 个答案:

答案 0 :(得分:2)

尝试在where和。之间放置空格。

$sub_questions_no_restricted = Doctrine_Query::create()
                ->select("q2.id")
                ->from("question q2")
                ->leftJoin("q2.CountryRestrictions cr2")
                ->groupBy("q2.id")
                ->having("count(cr2.country_iso) = 0");