Symfony1 mysql到symfony 1.4.9中的Criteria()

Symfony1 mysql到symfony 1.4.9中的Criteria(),symfony1,symfony-1.4,propel,Symfony1,Symfony 1.4,Propel,我在mySQL中有以下复杂的查询 SELECT courseId,courseName FROM course WHERE courseId NOT IN (SELECT courseId FROM coursestaken NATURAL JOIN student WHERE grade >= 60 AND studentId =2) AND courseId NOT IN (SELECT courseId FROM stable WHERE studentId = 2 ) AND c

我在mySQL中有以下复杂的查询

SELECT courseId,courseName
FROM course WHERE courseId NOT IN (SELECT courseId FROM coursestaken NATURAL JOIN student WHERE grade >= 60 AND studentId =2) 
AND
courseId NOT IN (SELECT courseId FROM stable WHERE studentId = 2 )
AND
courseId NOT IN (SELECT DISTINCT courseId FROM prerequisites 
WHERE
prereqId NOT IN (SELECT courseId FROM coursestaken NATURAL JOIN student WHERE grade >= 60 AND studentId =2  )) ; 

有人能帮我将其转换为推进中的Criteria()查询吗?

尝试在推进中使用prepare函数,如下所示

    $con=Propel::getConnection();
            $obj = $con->prepare("SELECT courseId,courseName
FROM course WHERE courseId NOT IN (SELECT courseId FROM coursestaken NATURAL JOIN student WHERE grade >= 60 AND studentId =2) 
AND
courseId NOT IN (SELECT courseId FROM stable WHERE studentId = 2 )
AND
courseId NOT IN (SELECT DISTINCT courseId FROM prerequisites 
WHERE
prereqId NOT IN (SELECT courseId FROM coursestaken NATURAL JOIN student WHERE grade >= 60 AND studentId =2  )) ");
            $obj->execute();
            $resultset = $obj->fetchAll();

+这是我的荣幸。当SQL很复杂时,不要尝试创建Criteria语句,尤其是当您不返回水合对象时。使用此链接作为正确使用spreep的指南:同时尽量避免过多的子查询,通常会导致性能问题。