Mysql 到laravel的SQL子查询

Mysql 到laravel的SQL子查询,mysql,sql,laravel,eloquent,subquery,Mysql,Sql,Laravel,Eloquent,Subquery,我曾试图将一个问题传递给laravel,但我做不到。这就是问题所在 SELECT * FROM installations WHERE id = 1 AND (SELECT eliminado from projects where id = installations.project_id) = 0; 我试过类似的方法 $project = installations::where([ ['id',$id], [function ($query)

我曾试图将一个问题传递给laravel,但我做不到。这就是问题所在

SELECT * 
FROM installations 
WHERE id = 1 AND
(SELECT eliminado from projects where id = installations.project_id) = 0;
我试过类似的方法

$project = installations::where([
          ['id',$id],
          [function ($query) use ($projects) {
              $query -> select('eliminado')
                     -> from('projects')
                     -> where('id', $projects[0]->project_id);
            }, 0]])->get();


但它仍然不起作用…,有人能帮我吗?谢谢

在您的
安装
模型上使用关系
项目
,您可以这样做

$intalation=Installation::whereHas('project',function($query){
$query->where('eliminado','=',0);
})->查找($id);
项目
关系应该是一个
的关系

intalallation.php

公共功能项目()
{
$this->belongsTo(项目::类);
}

我认为您可以使用以下内容:

$project = installations::where('id', $id)
      ->whereRaw('(SELECT eliminado from projects where id = installations.project_id) = ?', [0])
      ->get();
你可以这样做

SELECT * 
FROM installations ins
WHERE id = 1 AND EXISTS
(SELECT 1 from projects p where p.id = ins.project_id AND p.eliminado =0);
SELECT * 
FROM installations ins
WHERE id = 1 AND EXISTS
(SELECT 1 from projects p where p.id = ins.project_id AND p.eliminado =0);