Bạn cần hai kết hợp:
SELECT
product.productID,
category.categoryID,
product.name,
product.price,
category.name
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
Nếu một sản phẩm có thể không thuộc danh mục và bạn vẫn muốn trả lại, hãy thay đổi THAM GIA thành THAM GIA TRÁI ở cả hai nơi.
Một cách tiếp cận thay thế:
SELECT
product.productID,
product.name,
product.price,
GROUP_CONCAT(category.name)
FROM product
JOIN product_cat ON product.productID = product_cat.productID
JOIN category ON category.categoryID = product_cat.categoryID
GROUP BY product.productID
Tuy nhiên, tốt hơn là chỉ nên sử dụng hai truy vấn thay vì đặt nhiều giá trị vào một ô duy nhất.