Bạn đã thực hiện nhiệm vụ khá dễ dàng với sqlfiddle cũng như nỗ lực giải quyết vấn đề với truy vấn Chọn.
Nó hoạt động theo cách bạn muốn, tôi đoán và tất cả những gì tôi cần làm là thêm một phép nối bên trái nữa với bảng danh mục (IDK tại sao bạn không thể tham gia Danh mục vì nó đang hoạt động bình thường).
Vì thế. Tôi đã chỉnh sửa truy vấn đã chọn của bạn như sau:
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;
Bạn sẽ nhận được kết quả mong muốn với truy vấn này.
Bây giờ, để cập nhật Products
với kết quả của truy vấn này, bạn có thể thực hiện như sau:
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;
Hy vọng nó sẽ hữu ích!