SQL: Получить продукты из категории, но также должны быть в другой набор категорий

Я сейчас застрял в ситуации. Сценарий такой. У меня есть продукты, которые могут быть связаны с несколькими категориями. Структура данных показана ниже:

Products Table:
product_id  name 
1           Lemon
2           Kiwis
3           Cheese

Таблица продуктов по категориям

product_id   category_id
1            1
1            2
1            3
2            1
2            3
3            2
3            4

Таблица категорий (не требуется в запросе, однако добавьте ее здесь, чтобы помочь визуализировать происходящее)

category_id  name
1            Fruit
2            Yellow
3            Round
4            Dairy

Что я'Я борюсь с тем, что изначально я хочу получить все продукты, которые находятся в категории фруктов (категория ID 1), но я также хочу проверить, является ли фрукт желтым. Имейте в виду, что желтый не будет единственным фильтром, иногда я захочу вернуть желтый и оранжевый фрукты, однако, так как сыр желтый, я могу ».не вернуть, так как это не такт фрукт. Однако, чтобы сделать вещи немного проще, я всегда знаю, что я буду смотреть на категорию фруктов в качестве основы.

Структура базы данных не может быть изменена как структура базы данных opencart.

Вот мои попытки:

SELECT GROUP_CONCAT(DISTINCT p2c2.category_id SEPARATOR ',') as categories 
FROM oc_product_to_category p2c 
LEFT JOIN oc_product p ON (p.product_id = p2c.product_id) 
LEFT JOIN oc_product_to_category p2c2 ON (p.product_id = p2c2.product_id) 
WHERE p2c.category_id IN ('1','2')

Этот вид работ за исключением того факта, что он вернет сыр.

Примечания: Я использую Group Concat, потому что в конце всего этого моя цель состоит в том, чтобы вернуть не столько продукты, которые соответствуют этим категориям, но на основе фильтров я хочу вернуть еще один список категорий из продуктов, которые соответствуют этим критериям. Так:

Сценарий:

Получить продукты, которые соответствуют критериям категории. Вернуть категории этих продуктов.

Любая помощь будет принята с благодарностью.