Sie haben die Aufgabe mit Ihrem sqlfiddle ziemlich einfach gemacht, ebenso wie mit Ihrem Versuch, das Problem mit Select query zu lösen.
Ich denke, es funktioniert so, wie Sie es wollen, und alles, was ich tun muss, ist, eine weitere linke Verknüpfung mit der Kategorietabelle hinzuzufügen (IDK, warum Sie der Kategorie nicht beitreten konnten, da es ordnungsgemäß funktioniert).
So. Ich habe Ihre ausgewählte Abfrage wie folgt bearbeitet:
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;
Mit dieser Abfrage erhalten Sie die gewünschten Ergebnisse.
Nun, um Products
zu aktualisieren Tabelle mit dem Ergebnis dieser Abfrage können Sie Folgendes tun:
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;
Klicken Sie hier für eine funktionierende Demo
Hoffe es hilft!