Mam taki problem mam sobie dwie tabele
Przekierowania_grup
id_substancji id_grupy
i grupy
nazwa

I teraz jedna substancja może należeć do n grup i mam taki kod

   public function selectGroupName(int $id) {
        $group = new Forwarding_group;
        $arrayGroup = array();
        $i = 0;
        //print $id;
        $list = $group
                ->selectRaw("forwarding_groups.id_substances as id_sub")
                ->selectRaw("forwarding_groups.id_groups as id_gro")
                ->selectRaw("groups.name as name")
                ->join("groups","groups.id","forwarding_groups.id_groups")
                //->join("forwarding_substances","")
                ->where("groups.id_users",Auth::User()->id)
                //->groupBy("forwarding_groups.id_groups")
                //->having("forwarding_groups.id_substances",$id)
                ->get();
        foreach ($list as $listGroup)  {
            //print $id;
            //print $listGroup->id_sub . " ";
            if ($listGroup->id_sub == $id) {
                $arrayGroup[$i][0] = $listGroup->id_gro;
                $arrayGroup[$i][1] = $listGroup->name;
                $arrayGroup[$i][2] = true;
                //print "s";
            }
            else {
                $arrayGroup[$i][0] = $listGroup->id_gro;
                $arrayGroup[$i][1] = $listGroup->name;
                $arrayGroup[$i][2] = false;
            }
            $i++;
        }
        return $arrayGroup;
        
    }

I jak ta linika nie będzie zachaszowana
->groupBy("forwarding_groups.id_groups")
To grupuje mi według id_group, ale wtedy jest problem bo ma w instrukcji warunkowej przeflirtowac czyli zaznaczyć checked substancje która jest w tej grupie i tego nie robi a jak ta instrukcja nie będzie zachaszowana to wtedy dubluje mi substancje które mają ta samą grupę czyli po prostu jak ibuprofen przecibólowe i paracetamo tez przecibólowe to dwa razy wyświetli przecibólowe
I teraz czy da się to zrobić za pomoca jednego zapytamia, żeby poprawnie wyświetlało te dane ?