一个查询从多个表中检索值

时间:2017-12-12 20:50:39

标签: mysql laravel laravel-query-builder

我一直在尝试从多个表中检索数据,直到我遇到使用数据透视表(或者在manyToMany关系表之间的链接表)的挑战之前,它一直很清楚。

到目前为止,我可以轻松地从每个表中获取数据,但我只需要进行一次查询,这将获取我需要的所有数据。

表格 =产品,详细信息,类别,product_category(这是一个数据透视表)

product_category = product_id | category_id(这些列中的每一列都引用了id - 产品上的product_id和类别上的category_id)

获取查询的代码:

$products = DB::table('products')
                    ->join('details', 'products.id', '=', 'details.product_id')
                    ->leftJoin('product_category', function($join) {
                        $join->on('products.id', '=', 'product_category.product_id');
                    })
                    ->select('products.*', 'details.*', 'product_category.*')
                    ->orderBy('products.created_at', 'desc')
                    ->paginate(10);

然后在索引页面上我可以获取foreach循环中的所有数据,但是有一个小问题 - 我只能得到product_category的列,换句话说只有category_id引用了categories.id - 但是我需要从类别表中获取这些值。

请,不要给我一份文件或类似的东西,我每次研究之前都会研究很多问题并阅读至少十几篇类似的Q& A,但有时我需要另一种观点获得解决方案并了解其工作原理。感谢每一个帮助。

1 个答案:

答案 0 :(得分:1)

问题是覆盖了您的专栏信息。

您可以像这样修改您的查询:

'item'