Yii2模型关系不为空

时间:2018-03-21 10:48:45

标签: php yii2

我想在关系中获取所有记录,其中非空

所以我的桌子是

tbl_truck
    id, name

 tbl_checks
   id
   truck_id //foreign key from tbl_truck table id

所以在我的查询中我有

$query = TblTrucksModel::find()
         ->leftJoin('tbl_checks','tbl_trucks.id = tbl_checks.truck_id')
         ->where() //here add the condition

所以基本上我只想从tbl_truck获取tbl_checks中存在的ID {/ 1}}

Nb:TblTrucksModel代表tbl_trucks

我如何继续这一点。

3 个答案:

答案 0 :(得分:1)

试试这个。

$query = TblTrucksModel::find();
$query->select('t.*');
$query->from('tbl_truck t');
$query->leftjoin('tbl_checks c','t.id = c.truck_id');
$query->where('c.id is not null');
$result = $query->all();

答案 1 :(得分:1)

应该使用运营商sintax

    $query = TblTrucksModel::find()
     ->leftJoin('tbl_checks','tbl_trucks.id = tbl_checks.truck_id')
     ->where(['not', ['tbl_trucks.id' => null]])

答案 2 :(得分:0)

如果您打算不在tbl_truck表格中显示tbl_checks中没有相关记录的卡车,只显示有关联的记录,那么您应该使用innerJoin而不是leftJoin左侧联接将显示tbl_truck显示truck_idNULL的所有记录,以显示truck_id中没有关联或匹配tbl_checks的记录{1}}

TblTrucksModel::find()
         ->innerJoin('tbl_checks','tbl_trucks.id = tbl_checks.truck_id')

在这种情况下,您不需要额外的where子句。