首页 > 解决方案 > 如何仅按一列获取与组关联的数据?

问题描述

我在postgres.

该关联如下所示: 在此处输入图像描述

我正在尝试明智地获取用户反应列表消息。像这个例子。此模式按消息明智地打开:

在此处输入图像描述

我在 CakePHP 查询生成器中尝试了以下查询:

$this->ChatMessages->find()
    ->contain([
        'ChatReactions.ChatReactionTypes',
    ])
    ->contain('ChatReactions', function($q) {
        $q->select([
                'chat_message_id',
                'chat_reaction_type_id',
                'count' => $q->func()->count('chat_reaction_type_id')
        ])
    ->innerJoinWith('ChatReactionTypes')
    ->group(['chat_reaction_type_id', 'chat_message_id']);
    
        return $q;
    })
    ->order([
        'ChatMessages.created' => 'ASC',
    ])
    ->all()
;

这是结果:

在此处输入图像描述

chat_reactions上图中标记为红色的)对象按reaction_type_id 分组。我希望将所有users与该 id 关联的内容放在chat_reactions.

标签: cakephpcakephp-4.x

解决方案


推荐阅读