У меня есть три таблицы: product ,folio_mapping и category. У каждого продукта есть несколько сопоставлений портфолио и несколько категорий. В следующем запросе я хочу получить все категории, к которым принадлежит продукт. Следующий запрос возвращает только ту категорию, для которой выполняется условие. Я хотел бы иметь все категории для продукта, когда условие выполняется.
Я использовал подзапрос в предложении WHERE
, он возвращает product_id.
Теперь для этого product_id я хотел бы получить все категории. Есть идеи, что я здесь делаю неправильно.
SELECT c.category_names
FROM
product AS pd
LEFT JOIN
portfolio_mapping AS p
ON
pd.product_id = p.product_id
LEFT JOIN
category_mapping AS c
ON
pd.product_id = c.product_id
WHERE pd.product_id IN
( SELECT c.product_id FROM category_mapping AS c
WHERE (p.portfolio_mapping_id = 1 AND p.value = 'Yes')
AND (c.category_id = 1 AND c.value = 'Yes') )