mysql从表中选择所有,但只更改列名称

问题描述:

我需要选择一个包含id,名称和更多的表。现在我想选择所有内容,但只需将列名称'name'更改为'user_name'即可。我怎样才能做到这一点,而不选择和宣布一切? 我试过这样,但这不起作用。mysql从表中选择所有,但只更改列名称

return $query 
->select(
    'user.*', 
    'user.name as user_name' 
) 
+0

你是什么意思,它不工作?你有错误还是别的? –

+0

另外,你可以尝试'返回$查询 - >选择(['user.name as user_name','用户。*'])' –

+0

重点是,我留下来加入它与同一张表,但在另一个用户。所以两者都有“名称”列。因此它覆盖了之前的转储。该ID也被覆盖,但我不需要它。 – hatemjapo

您的问题从您的加入开始。因为你没有走样,所以第二个覆盖第一个。我给你一个示例查询,以显示如何为连接的表生成别名,从而将别名从第二个表中别名化。示例代码:

$query = DB::table('users') 
->leftjoin('users as child', 'users.id', '=', 'users.parent_id') 
->select('users.*', 'child.name as child_name') 
->get();