diff --git a/classes/exporters/CourseParticipantsExporter.php b/classes/exporters/CourseParticipantsExporter.php
index 5bc42ddf6b8509221bef93785c55bd46f9172c90..ff929bfaa7732dc769c9e429515cce4e7bb5b7be 100644
--- a/classes/exporters/CourseParticipantsExporter.php
+++ b/classes/exporters/CourseParticipantsExporter.php
@@ -233,18 +233,12 @@ class CourseParticipantsExporter extends Exporter
 
         $fields_sql = [];
 
-        if ($with_course_id) {
+        if ($with_course_id || $with_group_id || $with_group_name) {
             $fields_sql[] = '`seminar_user`.`seminar_id` AS course_id';
         }
-        if ($with_user_id) {
+        if ($with_user_id || $with_group_id || $with_group_name) {
             $fields_sql[] = '`seminar_user`.`user_id` AS user_id';
         }
-        if ($with_group_name) {
-            $fields_sql[] = '`statusgruppen`.`name` AS group_name';
-        }
-        if ($with_group_id) {
-            $fields_sql[] = '`statusgruppen`.`statusgruppe_id` AS group_id';
-        }
         if ($with_status) {
             $fields_sql[] = '`seminar_user`.`status` AS status';
         }
@@ -285,13 +279,6 @@ class CourseParticipantsExporter extends Exporter
         $with_user_info_data = false;
         $with_course_data = false;
 
-        if ($with_group_id || $with_group_name) {
-            $joins_sql[] = 'LEFT JOIN `statusgruppen`
-                ON `seminar_user`.`Seminar_id` = `statusgruppen`.`range_id`
-                LEFT JOIN `statusgruppe_user`
-                USING (`statusgruppe_id`)';
-        }
-
         if ($min_participants > 0) {
             $joins_sql[] = 'INNER JOIN (
                 SELECT `seminar_id`, COUNT(`user_id`) AS _participant_count
@@ -397,22 +384,61 @@ class CourseParticipantsExporter extends Exporter
 
         $course_members_stmt = $db->prepare($full_sql);
         $course_members_stmt->execute($sql_data);
-        if ($with_salutation) {
-            //The salutation field needs special attention, since we only got the
-            //gender-ID from the database and need to construct the salutation from it.
+        if ($with_salutation || $with_group_id || $with_group_name) {
+            $group_stmt = null;
+            if ($with_group_id || $with_group_name) {
+                $group_stmt = $db->prepare(
+                    'SELECT `statusgruppe_id` AS group_id, `statusgruppen`.`name` AS group_name
+                    FROM `statusgruppe_user` INNER JOIN `statusgruppen` USING (`statusgruppe_id`)
+                    WHERE `statusgruppen`.`range_id` = :course_id AND `statusgruppe_user`.`user_id` = :user_id'
+                );
+            }
+
+            //Some fields needs special attention.
             $db_data = $course_members_stmt->fetchAll(\PDO::FETCH_ASSOC);
             $output = [];
             foreach ($db_data as $row) {
                 $row_data = $row;
-                unset($row_data['gender_id']);
-                $gender_id = $row['gender_id'];
-                $salutation = '';
-                if ($gender_id == '1') {
-                    $salutation = dgettext('Flexexport', 'Herr');
-                } elseif ($gender_id == '2') {
-                    $salutation = dgettext('Flexexport', 'Frau');
+                if ($with_salutation) {
+                    //We only got the gender-ID from the database and need to construct the salutation from it.
+                    unset($row_data['gender_id']);
+                    $gender_id = $row['gender_id'];
+                    $salutation = '';
+                    if ($gender_id == '1') {
+                        $salutation = dgettext('Flexexport', 'Herr');
+                    } elseif ($gender_id == '2') {
+                        $salutation = dgettext('Flexexport', 'Frau');
+                    }
+                    $row_data['salutation'] = $salutation;
+                }
+                if ($group_stmt) {
+                    $group_stmt->execute(['course_id' => $row['course_id'], 'user_id' => $row['user_id']]);
+                    $group_result = $group_stmt->fetchAll(\PDO::FETCH_ASSOC);
+                    //Remove the unused fields that are only needed here from the result set:
+                    if (!$with_course_id) {
+                        unset($row_data['course_id']);
+                    }
+                    if (!$with_user_id) {
+                        unset($row_data['user_id']);
+                    }
+                    $group_ids = [];
+                    $group_names = [];
+                    foreach ($group_result as $group_entry) {
+                        //Add each group id and/or name into one column:
+                        if ($with_group_id) {
+                            $group_ids[] = $group_entry['group_id'];
+                        }
+                        if ($with_group_name) {
+                            $group_names[] = $group_entry['group_name'];
+                        }
+                    }
+                    if ($with_group_id) {
+                        $row_data['group_id'] = implode(',', $group_ids);
+                    }
+                    if ($with_group_name) {
+                        $row_data['group_name'] = implode(',', $group_names);
+                    }
                 }
-                $row_data['salutation'] = $salutation;
                 $output[] = $row_data;
             }
             return $output;