для выгрузки осталось только сделать такое
сперва нужно разделить столбец name2 на несколько столбцов (нужно создать новую таблицу скорей всего используя процедуру)
для всех строк где product_id = cons (например 495)
разбить options_id на несколько столбцов (например 120 и 15)
столбец1 options_id=120
столбец2 options_id=15
а дальше сделать выборку перекрестного содержимого между столбец1 и столбец2
Результат1(промежуточный)
Результат2(окончательный)
вот и решения
SELECT t1.product_id a, t1.relatedoptions_id b, t1.name c, t2.name d
FROM datatable t1, datatable t2
WHERE t1.product_id = t2.product_id
AND t1.relatedoptions_id = t2.relatedoptions_id
AND CAST(t1.name AS UNSIGNED) > 0
AND CAST(t2.name AS UNSIGNED) = 0
когда будет готово зад 1
я соберу все что мне нужно через Select
и дальше вы будете делать 2 и 3