2017-03-06 9 views
1

ID、名前などを含むテーブルを選択する必要があります。今私はすべてを選択したいが、列名 'name'を 'user_name'に変更するだけです。すべてを選択して宣言することなく、どうすればいいですか? 私はこれを試しましたが、これは動作しません。mysqlはテーブルからすべてを選択しますが、カラム名を1つだけ変更します

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

どういう意味ですか?あなたは何か他のことをしますか? –

+0

また、 'return $ query-> select(['user.name as user_name'、 'user。*'])' –

+0

を試すことができますか?ポイントは、同じテーブルではなく他のユーザー。だから両方とも列 '名前'を持っています。したがって、以前のダンプを上回ります。 idも上書きされますが、とにかくそれは必要ありません。 – hatemjapo

答えて

0

問題は結合から始まります。エイリアシングなしで結合するので、2番目のエイリアシングはエイリアシングを上書きします。私は結合されたテーブルの別名を付ける方法を示すためのサンプルクエリを提供し、2番目のテーブルから '名前'をエイリアスします。サンプルコード:

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