gpt4 book ai didi

javascript - 连接查询以将多个数据获取到 Laravel 中的数据表

转载 作者:行者123 更新时间:2023-12-02 22:15:52 25 4
gpt4 key购买 nike

我想在数据表的一列中显示一些多个值。我连接了两个表来显示数据表中的值。它包括客户数据,并且客户具有从另一个联接查询获取数据的多种服务。我如何将这些组合在一起以根据数据表中的每个客户显示多个服务值。我是 Laravel 新手,感谢您的帮助!

连接查询将数据传递到没有多个值的数据表:

    public function getAppointmentData(Request $request)
{

$getData = DB::table('customers')
->join('jobs', 'jobs.id', '=', 'customers.id')
->select('jobs.id', 'user_type','firstname','lastname', 'vehiclemodel', 'date', 'time', 'payment_status', 'amount')->get();

$datatable = DataTables::of($getData)->make(true);
return $datatable;
}

根据每个客户获得多种服务值(value):

        $getData = DB::table('customers')
->join('customer_service', 'customer_service.customer_id', '=', 'customers.id')
->join('services_info', 'services_info.id', '=', 'customer_service.id')
->select('customer_id','service_id','service')
->get();

以上代码的输出:

enter image description here

我已经有了数据表:

enter image description here

我希望数据表中的服务列能够根据每个客户显示多个服务值。

最佳答案

您可以使用 MySQL 的 GROUP_CONCAT()

功能:

public function getAppointmentData(Request $request)
{
$services = DB::table('customers')
->join('customer_service', 'customer_service.customer_id', '=', 'customers.id')
->join('services_info', 'services_info.id', '=', 'customer_service.id')
->selectRaw("
customer_id,
GROUP_CONCAT(service) as services_list
")
->groupBy('customer_id')
->toSql();

$getData = DB::table('customers')
->join('jobs', 'jobs.id', '=', 'customers.id')
->join(DB::raw("({$services} as services)"), 'services.customer_id', '=', 'customers.customer_id')
->select('jobs.id', 'user_type','firstname','lastname', 'vehiclemodel', 'date', 'time', 'payment_status', 'amount', 'services_list')->get();

$datatable = DataTables::of($getData)->make(true);
return $datatable;
}

关于javascript - 连接查询以将多个数据获取到 Laravel 中的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59387530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com