我需要我的模型仅从一个表中返回那些匹配记录在另一个表中不存在的记录。我在想解决方案可能是 Query Scopes但文档只涉及表面。所以我的 SQL 看起来像这样:
SELECT *
FROM A
WHERE NOT EXISTS (SELECT A_id FROM B
WHERE B.A_id = A.id)
这是我的表格:
A
-------------
| id | name |
-------------
B
--------------------
| id | A_id | name |
--------------------
可能没有必要,但这是我的模型。 A 的模型:
class A extends Eloquent{
public function B(){
return $this->hasOne('B', 'A_id', 'id');
}
}
B 的模型:
class B extends Eloquent{
public function A(){
return $this->belongsTo('B', 'A_id', 'id');
}
}
最佳答案
有点像
A::whereNotExists(function($query)
{
$query->select(DB::raw(1))
->from('B')
->whereRaw('A.id = B.id');
})
->get();
关于php - 拉维尔 4 : Where Not Exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409469/