微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – yii2在查询中选择NULL值(选择NULL作为列,…)

有没有办法在YII2中的查询中选择NULL值或精确字符串?
我正在尝试加入3个查询,我需要相同数量的列查询,例如“选择NULL作为返回,提交,数量,NULL作为iamount …..”
例:

$subQuery2 = Loan::find()->select('person_id')->where(['sheet_id' => $id]);

$query2 = new Query();$query2 = new Query();
$query2->select(['last_name','first_name','fc.tax','NULL as returned','fc.submitted','fc.amount','NULL as iamount','NULL as interest',
        'b.month','b.year','b.nb']) 

    ->from('sheet as b')
    ->join('JOIN', 'fee as fc',
            'b.id  = fc.sheet_id')     
    ->join('JOIN','person','fc.person_id = person.id')
    ->where(['b.id' => $id])
    ->andWhere(['not in', 'person_id', $subQuery2]);  

$query = new Query();

$query->
select(['last_name','first_name','fc.tax','fi.returned','fc.submitted','fc.amount','fi.amount as iamount','fi.interest',
        'b.month','b.year','b.nb']) 

    ->from('sheet as b')
    ->join('RIGHT JOIN', 'fee as fc',
            'b.id  = fc.sheet_id')     
    ->join('JOIN','person','fc.person_id = person.id')
    ->join('LEFT JOIN','loan as fi',
        'b.id = fi.sheet_id and fc.person_id = fi.person_id')
    ->where(['b.id' => $id])
    ->union($query2)
    ->orderBy(['last_name' => SORT_DESC]);

解决方法:

是的,你有两种方法可以做到:

    $query = new Query();
    $query->select([
         new Expression('NULL as test')
         'test2' => new Expression('NULL'), 
    ])->from('sheet as b');

两个选择都将执行相同的操作,但第二行(test2)更可取,因为它更符合DBMS.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐