0

我正在使用 Laravel 5.1。下面是我的数据库查询

\App\Models\Project\Bids\ProjectBid_Model
::with(['Project' => function($query){
    $query->where('WhoCreatedTheProject', 16);
}])
->where('ProjectBidID', 1)
->where('FreelancerAwardedProjectStatusID', \App\ProjectStatus::InProgress)
->first()

问题是什么 ?

在下面的部分中,如果没有记录,那么Project Object将是null。这似乎是 select 语句中的子查询。value does not match in the database ? I meant I am looking for如果“WhoCreatedTheProject Inner Join ”,有没有办法返回整体无记录。

::with(['Project' => function($query){
    $query->where('WhoCreatedTheProject', 16);
}])
4

1 回答 1

0

您可以这样做(您将有一个查询):

\App\Models\Project\Bids\ProjectBid_Model
::selectRaw('projectbid_table.*')
->join('projects_table','projectbid_table.project_id','=','project_table.project_id')
->where('WhoCreatedTheProject',16);
->where('ProjectBidID', 1)
->where('FreelancerAwardedProjectStatusID', \App\ProjectStatus::InProgress)
->first();

您当然需要更改表名join以匹配您的值。

但是回答这个问题,在您的示例中,任何子查询都不会运行。您将获得所有项目投标(这是第一个查询),稍后在单独的查询中您将获得该投标的所有项目WhoCreatedTheProject = 16(这是第二个查询)。因此,您所展示的内容可能与您想要实现的不同。

于 2015-12-23T21:49:10.447 回答