如何使用Zend框架中的连接来模拟“不在”?

时间:2013-03-14 14:51:13

标签: zend-framework2 zend-db

我有两个关联表“demande”和“reponse”,它们是链接的,我想检索“demande”中所有不在“reponse”中的行。

我尝试使用连接:

$select = new Select ();

$select->columns(array("id"));
$select->from ("demande" );
$select->where->lessThan("dateArretMarche",$stringDate );
$select->join(
    array("rep" => 'reponse'), // table name,
    'demande.id = rep.id_demande',array(),  
    $select::JOIN_RIGHT);

$select ->where->isNull("rep.id");//<== it doesn't work

但我不能选择“空”行“。 我想这可能与“不在”但Zend Framework只提供“in”谓词。

谢谢大家。

2 个答案:

答案 0 :(得分:0)

如果您只是将其包含在查询中该怎么办?像这样:

$select ->where('rep.id IS NULL');

答案 1 :(得分:0)

如果您想使用isNull条件。那么您是否需要使用Predicate。尝试使用以下代码。

    $select->where(array(
        new \Zend\Db\Sql\Predicate\IsNotNull("rep.id")
            )
    );