Hai reso il compito abbastanza semplice con il tuo sqlfiddle e il tuo tentativo di risolvere il problema con Seleziona query.
Funziona come vuoi tu e tutto quello che devo fare è aggiungere un altro join sinistro con la tabella delle categorie (IDK perché non sei stato in grado di unirti a Category perché funziona correttamente).
Così. Ho modificato la query selezionata come segue:
select Products.name, Filters.*,Categories.id from Products
left join Filters
on Products.name LIKE CONCAT('%',Filters.filter,'%')
left join Categories
on Categories.name = Filters.category_name
GROUP BY Products.name;
Otterrai i risultati desiderati con questa query.
Ora, per aggiornare Products
tabella con il risultato di questa query, puoi fare quanto segue:
update Products
left join Filters
on Products.name LIKE CONCAT('%',Filters.filter,'%')
left join Categories
on Categories.name = Filters.category_name
set Products.category_name = Filters.category_name,
Products.category_id = Categories.id;
Fai clic qui per la demo di lavoro
Spero che ti aiuti!