Symfony1 mysql到symfony 1.4.9中的Criteria()
我在mySQL中有以下复杂的查询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
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的指南:同时尽量避免过多的子查询,通常会导致性能问题。