Для достижения вашей цели сначала вам нужно будет создать производные таблицы для ручных и автоматических задач.Следующие запросы также приведут к тому, что эти таблицы добавят номер строки:
Таблица с ручными задачами
SELECT
t.id,
t.taskType,
t.taskContent,
(@row_num := @row_num + 1) AS rowNum
FROM
tasks AS t
CROSS JOIN
(SELECT @row_num := 0) AS r
WHERE
taskType = 'M'
Таблица с автоматическими задачами
SELECT
t.id,
t.taskType,
t.taskContent,
(@row_num := @row_num + 1) AS rowNum
FROM
tasks AS t
CROSS JOIN
(SELECT @row_num := 0) AS r
WHERE
taskType = 'A'
Теперь все, что вам нужно сделать, это объединить эти производные таблицы с таблицей game
в соответствующих столбцах:
Выберите ручной номер задачи X, используя поле manualTaskCounter
SELECT
mTasks.*
FROM
game AS g
INNER JOIN
( SELECT
t.id,
t.taskType,
t.taskContent,
(@row_num := @row_num + 1) AS rowNum
FROM
tasks AS t
CROSS JOIN
(SELECT @row_num := 0) AS r
WHERE
taskType = 'M' ) AS mTasks ON mTasks.rowNum = g.manualTaskCounter
Выберите автоматический номер задачи X, используя поле autoTaskCounter
SELECT
aTasks.*
FROM
game AS g
INNER JOIN
( SELECT
t.id,
t.taskType,
t.taskContent,
(@row_num := @row_num + 1) AS rowNum
FROM
tasks AS t
CROSS JOIN
(SELECT @row_num := 0) AS r
WHERE
taskType = 'A' ) AS aTasks ON aTasks.rowNum = g.autoTaskCounter
Проверьте следующий онлайн-пример:
Пример DB Fiddle