Help with a sql search query using a comma delimitted parameter

后端 未结 6 880
深忆病人
深忆病人 2020-12-20 10:15

I am looking for something like this but can\'t figure out the best way to write the query:

SELECT DISTINCT CategoryID FROM tbl_Categories c INNER JOIN 
  ma         


        
6条回答
  •  一生所求
    2020-12-20 10:37

    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))
    

提交回复
热议问题