我有以下代码:
$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");
我想得到所有没有国家限制的问题ID
但是 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”,并添加一个“)”
我做错了什么?它是一个教义问题?有什么建议么?