you can do this:
SOLUTION 1
SELECT CategoryID
FROM tbl_Categories c INNER JOIN
mappingTable mp ON c.CategoryID = mp.CategoryID INNER JOIN
SubCategories sc ON mp.SubCategoryID = sc.SubCategoryID
WHERE sc.SubcategoryID IN (234,245,645)
GROUP BY CategoryID
HAVING COUNT(sc.SubcategoryID)
= LEN(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE('234,245,645','0','')
, '1', '')
, '2', '')
, '3', '')
, '4', '')
, '5', '')
, '6', '')
, '7', '')
, '8', '')
, '9', '')
, ' ', '')) + 1
SOLUTION 2: another that may work:
SELECT CategoryID
FROM tbl_Categories c INNER JOIN
mappingTable mp ON c.CategoryID = mp.CategoryID INNER JOIN
SubCategories sc ON mp.SubCategoryID = sc.SubCategoryID
WHERE sc.SubcategoryID IN (234,245,645)
GROUP BY CategoryID
HAVING COUNT(sc.SubcategoryID)
= (SELECT COUNT(DISTINCT SubcategoryID)
FROM SubCategories
WHERE SubcategoryID IN (234,245,645))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…