문제

Database columns, Now i want to get those Product IDs only those having OPTIONS_VALUES_ID (12 and 31)

Database Image

  SELECT DISTINCT  pa.products_id,options_values_id,options_id , COUNT(options_values_id) FROM products_attributes pa WHERE 
            pa.products_id IN (3331,3452,3455) AND pa.options_values_id IN (12,31) 
            GROUP BY pa.products_id
            HAVING (pa.options_values_id) >  0

Above Query Result Above Query Result

I could not figure out how to get only those products id which having define options_value_id by user

도움이 되었습니까?

해결책

I think this is what you meant...

SELECT products_id,COUNT(options_values_id) 
FROM products_attributes WHERE 
options_values_id in(12,31)
GROUP BY products_id
having COUNT(options_values_id)>=2

SQLFiddle

다른 팁

No need to use DISTINCT because GROUP BY will remove duplicate values of your pa.products_id

SELECT pa.products_id,options_values_id,options_id , COUNT(options_values_id) 
FROM products_attributes pa 
WHERE pa.options_values_id IN (12,31) 
GROUP BY pa.products_id

hope this will help you...!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top