假设表 tracker
包含此columns(id,section,user_id,message)
,另一个是 user
表,其中包含 user data 和 user_id 是表 tracker
中的外键,因此我使用 join
从 user
获取名称表,我正在使用 laravel。
响应是这样的:-
{'id'=1,'name'='pavan','section'='marketing','message'='something'}
所需的结构是 user_id
下的嵌套数组,如下所示:-
{
//user_id 1:
[name,section,message],
2:
[name,section,message]
}
如何使用 MySQL
查询获取此信息?
//用户模型
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
//跟踪器模型
public function up()
{
Schema::create('trackers', function (Blueprint $table) {
$table->increments('id');
$table->enum('section',['Marketing','Sales','Customer','Trainer','Operations']);
$table->string('subject')->nullable();
$table->longText('content');
$table->enum('status',['processing','resolved']);
$table->date('date');
$table->unsignedInteger('user_id');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users');
});
}
//跟踪器模型中获取数据方法
public function getdata(){
return \DB::table('trackers')
->join('users','users.id','=','trackers.user_id')
->select('trackers.user_id','users.name',
'trackers.created_at','trackers.id','date',
'trackers.status','trackers.section','trackers.content')
->orderBy('created_at','DESC')->get();
}
//查询
$dat=new Tracker;
$data=$dat->getdata()->where('date',Carbon::today()->
toDateString())->where('status','processing');
最佳答案
$dat=new Tracker;
$data=$dat->getdata()->where('date',Carbon::today()->
toDateString())->where('status','processing')->get();
get()
将在获取您可以使用的集合后返回集合
您可以使用这样的数据
$dat->groupBy('user_id');
这将返回您期望的数据。
您可以获得有关collection->groupby()的更多信息
关于mysql - 如何使用 `sql/mysql` 从公共(public)列下的 `groupby` 获取嵌套数组,而不使用 foreach 来构造数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974823/