GroupBy 如何将查询出来的数据 按照某个字段分类 (要输出所有字段) [ 2.0 版本 ]
我用 GroupBy字段 将数据库中查询的数据按某个字段分类, 但是每个分类只能查询一条数据 。这如何解决?
$modal = TestQuestion::find()->joinWith('options')->asArray()->all();
var_dump($modal);
数据:
array(5) {
[0]=>
array(5) {
["id"]=>
string(1) "1"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷1"
["order"]=>
string(1) "1"
["options"]=>
array(2) {
[0]=>
array(5) {
["id"]=>
string(1) "1"
["pid"]=>
string(1) "1"
["name"]=>
string(3) "对"
["tip"]=>
string(18) "撒的方式地方"
["grade"]=>
string(1) "1"
}
[1]=>
array(5) {
["id"]=>
string(1) "2"
["pid"]=>
string(1) "1"
["name"]=>
string(3) "错"
["tip"]=>
string(18) "撒的方式地方"
["grade"]=>
string(1) "0"
}
}
}
[1]=>
array(5) {
["id"]=>
string(1) "2"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷2"
["order"]=>
string(1) "2"
["options"]=>
array(2) {
[0]=>
array(5) {
["id"]=>
string(1) "3"
["pid"]=>
string(1) "2"
["name"]=>
string(3) "对"
["tip"]=>
string(18) "时代发生地方"
["grade"]=>
string(1) "1"
}
[1]=>
array(5) {
["id"]=>
string(1) "4"
["pid"]=>
string(1) "2"
["name"]=>
string(3) "错"
["tip"]=>
string(27) "对我说发生的发生的"
["grade"]=>
string(1) "0"
}
}
}
[2]=>
array(5) {
["id"]=>
string(1) "3"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷3"
["order"]=>
string(1) "3"
["options"]=>
array(0) {
}
}
[3]=>
array(5) {
["id"]=>
string(1) "4"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷4"
["order"]=>
string(1) "4"
["options"]=>
array(0) {
}
}
[4]=>
array(5) {
["id"]=>
string(1) "5"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷5"
["order"]=>
string(1) "5"
["options"]=>
array(0) {
}
}
}
$modal = TestQuestion::find()->joinWith('options')->groupBy('type')->asArray()->all();
var_dump($modal);
数据:
array(1) {
[0]=>
array(5) {
["id"]=>
string(1) "1"
["type"]=>
string(1) "1"
["question"]=>
string(7) "天冷1"
["order"]=>
string(1) "1"
["options"]=>
array(2) {
[0]=>
array(5) {
["id"]=>
string(1) "1"
["pid"]=>
string(1) "1"
["name"]=>
string(3) "对"
["tip"]=>
string(18) "撒的方式地方"
["grade"]=>
string(1) "1"
}
[1]=>
array(5) {
["id"]=>
string(1) "2"
["pid"]=>
string(1) "1"
["name"]=>
string(3) "错"
["tip"]=>
string(18) "撒的方式地方"
["grade"]=>
string(1) "0"
}
}
}
}
共 4 个回答
-
groupby分组单独用就只能显示每组第一条,所以一般guroupby是用来统计数据的比如每组的条数,某个值的和什么的的,要全显示数据的话最好是用排序orderby
qqa4560354 觉得很赞 -
qqa4560354 回答于 2017-03-20 09:32 举报
显示某一条,groupby,正好
共 1 条回复qqa4560354 回复于 2017-03-20 09:33 回复补一个,我想问问,表关联的时候,为什么不直接在model连接,这样就不用joinwith了吧,
sycamore
注册时间:2016-11-17
最后登录:2018-05-01
在线时长:11小时40分
最后登录:2018-05-01
在线时长:11小时40分
- 粉丝1
- 金钱145
- 威望0
- 积分255