Laravel 5.1 Inner Join Query中的问题

时间:2015-12-23 22:12:43

标签: php sql laravel-5 eloquent laravel-5.1

以下是我在Laravel 5.1中的查询

      [,1] [,2] 
[1,]   30    5   
[2,]    3    50  

及以下是等效查询

x_bounds <- t(matrix(c(
    0,10,
    10,30
), 2))
y_bounds <- t(matrix(c(
    0,-50,
    -50,1000
), 2))

问题是什么?

请检查查询中的第1行:\App\Models\Project\Bids\ProjectBid_Model ::selectRaw('B.*') ->join('tblproject P','B.projectid','=','P.projectid') ->where('P.WhoCreatedTheProject',14) ->first()

问题是什么?

如何更改

select B.* from `tblprojectbid` inner join `tblproject P` on `B`.`projectid` = `P`.`projectid` where `P`.`WhoCreatedTheProject` = 14 limit 1

select B.* from tblprojectbid

3 个答案:

答案 0 :(得分:2)

如果你想使用Eloquent,恐怕没有简单的方法可以做到。

我在这种情况下使用实例的模型的全表名称

\App\Models\Project\Bids\ProjectBid_Model
::selectRaw('bid_table.*')
->join('tblproject AS P','bid_table.projectid','=','P.projectid')
->where('P.WhoCreatedTheProject',14)
->first()

但是,您也可以在ProjectBid_Model中设置别名:

protected $table = 'bid_table AS B';

你可能会觉得这个表总是与B别名,所以如果你有两个具有相同别名的模型(在这种情况下是B),你将无法改变它后来只为一个表,所以我认为更好的是第一种方法(不使用别名)

答案 1 :(得分:1)

以下是最终解决方案。

\App\Models\Project\Bids\ProjectBid_Model
    ::selectRaw('B.*')
    ->from('tblprojectbid as B')
    ->join('tblproject as P','B.projectid','=','P.projectid')
    ->where('P.WhoCreatedTheProject',14)
    ->first()

答案 2 :(得分:0)

试试这个。

\DB::table('tblprojectbid as B')
->select()
->join('tblproject as P','B.projectid','=','P.projectid')
->where('P.WhoCreatedTheProject',14)
->first()