普通网友 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 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)