简体   繁体   English

无法在laravel雄辩的联接查询中从第二个表中获取数据

[英]Not able to fetch data from the second table on join query in laravel eloquent

I was trying to fetch a category list using left join (on the same table) to get the parent category as well. 我试图使用左连接(在同一张表上)获取一个类别列表,以获取父类别。

The query looks like 查询看起来像

SELECT categories.`cat_id`, categories.`cat_name`, categories.`cat_desc`, categories.`parent_id`, categories.`created_at`,cat2.cat_name FROM `categories` JOIN categories cat2 ON categories.parent_id = cat2.cat_id

So on Laravel eloquent i wrote 所以我在Laravel雄辩地写道

$categoryModel::select('categories.cat_id', 'categories.cat_name', 'categories.cat_desc', 'categories.parent_id', 'categories.created_at','cat2.cat_name')
    ->leftJoin('categories AS cat2','categories.parent_id', '=' , 'cat2.cat_id')
    ->get();

Unfortunately, the result comes with only the first table columns 不幸的是,结果只包含第一列表

[{"cat_id":1,"cat_name":"Camera","cat_desc":null,"parent_id":3,"created_at":null},{"cat_id":2,"cat_name":"Camera","cat_desc":null,"parent_id":3,"created_at":null},{"cat_id":3,"cat_name":null,"cat_desc":null,"parent_id":null,"created_at":null},{"cat_id":4,"cat_name":null,"cat_desc":null,"parent_id":null,"created_at":null},{"cat_id":5,"cat_name":"CCTV","cat_desc":null,"parent_id":4,"created_at":null},{"cat_id":6,"cat_name":"CCTV","cat_desc":null,"parent_id":4,"created_at":null}]

Thanks in advance. 提前致谢。 :) :)

Here both table columns have same name, so you need to use alias for second table's column as of this please below change in your query like 'cat2.cat_name as c_name' 这两个表的列都具有相同的名称,因此,您需要在第二个表的列中使用别名,从此开始,请在下面的查询中更改'cat2.cat_name as c_name'

$categoryModel::select('categories.cat_id', 'categories.cat_name', 'categories.cat_desc', 'categories.parent_id', 'categories.created_at','cat2.cat_name as c_name' )
    ->leftJoin('categories AS cat2','categories.parent_id', '=' , 'cat2.cat_id')
    ->get();

它以这种方式工作,我为每列指定了别名。

$categoryModel::select('cat1.cat_id as catId', 'cat1.cat_name as catName', 'cat1.cat_desc as catDesc', 'cat1.parent_id as parId', 'cat1.created_at as cAt','cat2.cat_name as parCatName') ->from('categories as cat1') ->leftJoin('categories AS cat2','cat1.parent_id', '=' , 'cat2.cat_id') ->get();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM