MySql。如何组合游标中的多个列?

MySql. How to combine several columns in cursor?

如有任何帮助,我将不胜感激。我的情况.. 我和学生有一个table(我只写这个问题的主要专栏):

| Id | Lastname | Firstname |
_____________________________
| 1  | Smith    | John      |
| 2  | Williams | Robert    |
| 3  | Wilson   | David     |
...

A table 作品:

| Id  | Name    |
_________________
| 1   | Work1   |
| 2   | Work2   |
... 

A table where where write who done this work (可以做同样的工作的学生人数可以是任意的)

| Id | WorkId | StudentId |
___________________________
| 1  | 1      | 1         |
| 2  | 1      | 2         |
| 3  | 2      | 1         |
| 4  | 2      | 2         |
| 5  | 2      | 3         |
...

我需要在过程中创建一个 table( 使用光标 ),如下所示:

| WorkName     | Students                           |
_____________________________________________________
| Work1        | (Smith J., Williams R.)            |
| Work2        | (Smith J., Williams R., Wilson D.) |
...

我完全不明白在这种情况下如何使用游标。我的代码:

DELIMITER //
CREATE PROCEDURE Report()
BEGIN    
DECLARE students VARCHAR(200);  
DECLARE id_s INT;
  
DECLARE done INT DEFAULT FALSE;

DECLARE get_cur CURSOR FOR 
SELECT Id, CONCAT(Lastname, ' ', LEFT(Firstname,1), '. ') FROM students;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

open get_cur;
read_loop: LOOP

FETCH get_cur INTO id_s, students;  

IF done THEN
LEAVE read_loop;
END IF;

SELECT w.Name, students
 FROM Work w
JOIN WorkStudent ws ON w.Id=ws.WorkId
JOIN Students s ON s.Id = ws.StudentId 
WHERE s.Id=id_s;

END LOOP;

CLOSE get_cur;  

END //
DELIMITER ;

我解决了我的问题。对于这个决定,我创建了一个新的 table,如果学生现在还不在这个 table 中,我会在这个 table 中插入新行,然后更新这个 table(设置新的学生和逗号)如果学生出现在 table 中。我通过游标做到了这一点。 这是最终的正确决定。现在一切正常。