hai cột trong đó mệnh đề hợp nhất với dấu phẩy


8

Tôi muốn xây dựng một truy vấn.

đây là bảng:

id  user_id  sn_no
1   22       00112233
2   22       987654325
3   22       65489732
4   25       984123123
5   25       9568456456
6   25       65456456

Tôi muốn kết quả như thế này:

{
   "user_id":22,
   "sn_no": "00112233,987654325,65489732"
}
{
   "user_id":25,
   "sn_no": "984123123,9568456456,65456456"
}

Bất cứ ai có thể xin vui lòng giúp giải quyết vấn đề này?

Tôi đã thử : concat, GROUP_CONCATnhưng không thể có kết quả.

Bạn có thể vui lòng giúp tôi thêm điều này trong Tham gia tham gia không?

$users = \DB::table('users')
            ->join('users_mcu', 'users.id', '=', 'users_mcu.user_id')
            ->join('country_user', 'users.id', '=', 'country_user.user_id')
            ->join('country_phase_color', 'country_user.country_id', '=', 'country_phase_color.id')
            ->select('users.id', 'users.first_name', 'users.last_name', 'users.company', 'users.designation', 'users.lang', 'users.phone', 'users.disp_graph', 'users.user_image', 'users.email', 'users.role', 'users.created_at', 'users.updated_at', 'country_user.country_id', 'country_phase_color.country_name')
            ->get();

DB :: raw ("(GROUP_CONCAT (sn_no SEPARATOR ',')) cũng như sn_nobạn đã sử dụng concat nhóm như thế này
— Pankaj Bisht

mặc định SEPARATOR là ','không cần xác định lại
— Dilip Hirapara

Vui lòng chia sẻ nơi bạn đã thử
— GROUP_CONCAT

Câu trả lời:


4

Thử cái này-

YourModel::select('user_id')
         ->selectRaw('GROUP_CONCAT(sn_no) as sn')
         ->groupBy('user_id')
         ->get();

Vui lòng kiểm tra câu trả lời cập nhật. Trên thực tế tôi không biết tên cột sn_notrong bảng nào ... vui lòng xác nhận vềsn_no
— Rash Hasan

sn_no được lưu trữ trong bảng
— user_mcu

Vui lòng kiểm tra cập nhật
— Rash Hasan

CNTT nói -------users.id 'không có trong NHÓM THEO
— vdr

cùng một lỗi: users_mcu.user_id
— vdr

1

Thử cái này.

$data = \DB::table('tablename')->select('user_id', \DB::raw('group_concat(sn_no) as sn_nos'))->groupBy('user_id')->get();

như thể bạn muốn thay đổi SEPARATORthì bạn có thể sử dụng SEPARATORnó nếu không thì mặc định sẽ là','

\DB::table('tablename')->select('user_id',DB::raw("(GROUP_CONCAT(sn_no SEPARATOR '@')) as `sn_nos`"))->groupBy('user_id')->get();


0

Thử cái này

use DB;

DB::table('tableName')
        ->select('id','user_id','DB::raw("(GROUP_CONCAT(sn_no SEPARATOR ',')) as `sn_nos`")')
        ->groupBy('user_id')
        ->get();

-1

Bạn có thể thử cái này

Model::select('user_id')
       ->selectRaw('GROUP_CONCAT(sn_nos) as sn_nos')
       ->groupBy('user_id')
       ->get();
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.