如何将两个相关表中的数据提取到单变量laravel中

时间:2018-02-19 12:04:05

标签: sql laravel

我有两个表首先是客户,第二个是关系。 在关系表中,我有两个字段,即id和title。 我的clients表包含与relations表id相关的字段relation_id。 现在我的问题是,如何获取客户端表数据,而不是relation_id,我想要在laravel中的关系表中的相应标题。

2 个答案:

答案 0 :(得分:1)

试试这个:

DB::Table('clients')
->leftjoin('relations', 'relations.id', '=', 'clients.relation_id')
->select('clients.*', 'relations.title')
->get();

答案 1 :(得分:0)

如果您已经在模型中设置了关系,那么您可以像这样使用Eager Loading

Client::with('your relation')->get();

或者您可以使用Join

Client::leftJoin('table1', 'table2')->select('select columns that you want')->get();
如果你不知道什么是join / leftJoin / RightJoin或innerjoin

,那么离开是很难的

这是laravel doc的另一个例子,它更适合你的情况

$users = DB::table('users')
            ->leftJoin('posts', 'users.id', '=', 'posts.user_id')
            ->get();

修改: 根据您在此处提供的内容,您的查询应该是这样的:

$clientdata = DB::table('clients')->leftJoin('clients.id', '=' ,'relations.relation_id')->select('clients.*', 'relations.id as rel_id', 'relations.relation-title')->get();