Php 原则1.2:无法使用原则\u查询复制查询
我有一个SQL查询:Php 原则1.2:无法使用原则\u查询复制查询,php,orm,doctrine,doctrine-1.2,Php,Orm,Doctrine,Doctrine 1.2,我有一个SQL查询: select * from tblapplicant AS a WHERE a.napplicantid not in ( select napplicantid from tblcontract where dstart BETWEEN '2011-10-27' AND '2012-01-26' OR dend BETWEEN '2011-10-27' AND '2012-01-26') 我想在原则1.2中构建这个查询: $Query = Doctrine_
select *
from tblapplicant AS a
WHERE a.napplicantid
not in (
select napplicantid
from tblcontract
where dstart BETWEEN '2011-10-27' AND '2012-01-26'
OR dend BETWEEN '2011-10-27' AND '2012-01-26')
我想在原则1.2中构建这个查询:
$Query = Doctrine_Query::create()
->select('a')
->from('tblapplicant a')
->innerJoin('a.tblintermediair i')
->where('i.nintermediairid = ? ', $intermediairid)
->addWhere('a.napplicantid NOT IN (select c.napplicantid from tblcontract c WHERE c.dstart BETWEEN ? AND ? OR c.dend BETWEEN ? AND ?)', array($this->tbljobavailable->getFirst()->dday, $this->tbljobavailable->getLast()->dday, $this->tbljobavailable->getFirst()->dday, $this->tbljobavailable->getLast()->dday));
但不知何故,它一直在抱怨:
找不到c类
有什么想法吗?几天前刚刚有这个问题 可能的解决方案之一是为tblapplicant表本身添加一对一关系。我不喜欢这个,所以只是创建了额外的查询来获取排除ID。在你的情况下是这样的:
$notIn = Doctrine_Query::create()->(put your subselect query here)->execute(array(), Doctrine_Core::HYDRATE_SINGLE_SCALAR);
$Query = Doctrine_Query::create()
->select('a')
->from('tblapplicant a')
->innerJoin('a.tblintermediair i')
->where('i.nintermediairid = ? ', $intermediairid)
->whereNotIn('a.napplicantid', $notIn);