2017-07-25 113 views
0

您好我想形成laravel 5.4雄辩以下SQL查询:
select A.*, concat(B.firstname, ' ', B.lastname) as clientname, C.category as category from payments A, clients B, categories C where A.client_id = B.id and A.category_id = C.idLaravel 5.4雄辩多表查询

所有的外键被正确地给出,也正确创建的模型。

我的目标是让所有主记录名称如category,client name等直接进入子表记录集。

+1

你尝试过什么吗?你的代码在哪里? – Godiez

+0

您可以使用laravel查询生成器使用原始表达式,只需粘贴您的原始SQL查询。https://laravel.com/docs/5.4/queries#raw-expressions – ochhii

回答

0

DB::row()和打印数据,如以下

$data= DB::row("select A.*, concat(B.firstname, ' ', B.lastname) as clientname, C.category as category from payments A, clients B, categories C where A.client_id = B.id and A.category_id = C.id")->get(); 

dd($data); 

粘贴你的行查询,如果查询比它的检索数据

0

如果你已经取得Models比你为什么不正确和适当的管理关系使用ORM?

使用模型,

payment::leftJoin('clients ','payments.client_id','=','clients.id') 
->leftJoin('categories ','payments.category_id ','=','categories .id')->select(['payment.*','categories.category',DB::raw("CONCAT(clients.firstname,' ',clients.lastname) as clientname")])->get();** 
+0

谢谢,我使用了它,它为我工作。 – user3765227

0

你可以试试这个:

DB::table('payments') 
->select('payments.*',DB::raw('CONCAT(clients.firstname," ",clients.lastname) as clientname'),categories.category) 
->join('clients','clients.id','=','payments.client_id') 
->join('categories','categories.id','=','payments.category_id') 
->get(); 

希望这有助于为你!