普通网友 2015-11-09 10:13
浏览 24
已采纳

Sql得到多个同一行[关闭]

$uid is 6

    public function getUserGroups($uid) {
    $sql = "SELECT groups.id, groups.name, groups.type , groups.img_path, DATE_FORMAT(user_group.joined_at,'%e/%c/%Y %H:%i') joined_at FROM groups JOIN user_group ON groups.id = user_group.group_id WHERE groups.id IN (SELECT group_id FROM user_group WHERE user_id = ?)";
    $query = $this->db->prepare($sql);
    $query->execute(array($uid));
    if($query->rowCount()) {
        $user_groups = $query->fetchAll();
        return $user_groups;
    }
    return false;
}

This function bring true data from tables but multiple times. Here the outputs :

array (size=2)
  0 => 
    array (size=10)
      'id' => string '4' (length=1)
      0 => string '4' (length=1)
      'name' => string 'Test Grubu' (length=10)
      1 => string 'Test Grubu' (length=10)
      'type' => string 'Açık Grup' (length=11)
      2 => string 'Açık Grup' (length=11)
      'img_path' => string 'images/groupimages/11-09-2015-12-48-56_ic_participation_off.png' (length=63)
      3 => string 'images/groupimages/11-09-2015-12-48-56_ic_participation_off.png' (length=63)
      'joined_at' => string '9/11/2015 00:48' (length=15)
      4 => string '9/11/2015 00:48' (length=15)
  1 => 
    array (size=10)
      'id' => string '4' (length=1)
      0 => string '4' (length=1)
      'name' => string 'Test Grubu' (length=10)
      1 => string 'Test Grubu' (length=10)
      'type' => string 'Açık Grup' (length=11)
      2 => string 'Açık Grup' (length=11)
      'img_path' => string 'images/groupimages/11-09-2015-12-48-56_ic_participation_off.png' (length=63)
      3 => string 'images/groupimages/11-09-2015-12-48-56_ic_participation_off.png' (length=63)
      'joined_at' => string '9/11/2015 11:50' (length=15)
      4 => string '9/11/2015 11:50' (length=15)

user_group :

Group

groups :

enter image description here

I want to get user' s all group. I save to user_group, and all groups keeping in groups.

  • 写回答

1条回答 默认 最新

  • douben7493 2015-11-09 10:19
    关注

    If I true understand your question, I think something like that:

    SELECT
      groups.id,
      groups.name,
      groups.type,
      groups.img_path,
      DATE_FORMAT(user_group.joined_at, '%e/%c/%Y %H:%i') joined_at
    FROM groups
      JOIN user_group ON groups.id = user_group.group_id
    WHERE groups.id IN (SELECT group_id
                        FROM user_group
                        WHERE user_id = ?)
    GROUP BY groups.id;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c