MySQL: как грамотно составить запросик?
В данной ситуации - просто через join получать выводПиджак замшевый --- зеленый
Пиджак замшевый --- синий
Магнитофон импортный --- большой
Магнитофон импортный --- маленький
и в php строить по нему дерево или что хочется.
На чистом SQL задача без диких извращений и геморроя не решается.
SELECT goods.name, opt.val FROM 'goods' INNER JOIN 'options' ON opt_goods_id=goods_id
Ну а дальше ручками.  Как-то так:$a = [...];
$b = [];

foreach ($a as $item) {
    if (!array_key_exists($item['goods_name'], $b)) {
        $b[$item['goods_name']] = [];
    }

    if (!in_array($item['opt_val'], $b[$item['goods_name']])) {
        $b[$item['goods_name']][] = $item['opt_val'];
    }
}