Mysql 到laravel的SQL子查询
我曾试图将一个问题传递给laravel,但我做不到。这就是问题所在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)
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);