mysql - SQL: how to select a single id that meets multiple criteria from multiple rows -
on mysql database, have table below
package_content :  id | package_id | content_number | content_name | content_quality  1       99           11               yellow           1 2       99           22               red              5 3       101          11               yellow           5 4       101          33               green            5 5       101          44               black            5 6       120          11               yellow           5 7       120          55               white            5 8       135          66               pink             5 9       135          99               orange           5 10      135          11               yellow           5 and looking possibility make search queries on it:
i select package_id content_number 11 and 22 (in case should select package_id 99
i don't know if it's possible in sql since statement and results false. if use statement or package_id 99, 101, 120, 135 , that's not want.
maybe table not designed too, suggestions help! in advance
edit
i added content_quality column 
i used sql query juergen, works well
select package_id package_content content_number in (11,22) group package_id having count(distinct content_number) = 2 my last question how add criteria : select package_id content_number 11 and 22 and content_number 11 has content_quality 1
edit 2:
for 2nd question use query. both of helped me! :)
select * (    select package_id    package_content           (content_number=11 , content_quality > 1)       or (content_number = 33 , content_quality = 5)       or (content_number = 44 , content_quality =5 , content_name 'black')    group package_id    having count( distinct content_number) = 3    )t1 left join package_content on package_content.package_id = t1.package_id this output
id | package_id | content_number | content_name | content_quality  3       101          11               yellow           5 4       101          33               green            5 5       101          44               black            5 
you need group package_id , use having perform aggregate function on grouped data
select package_id package_content content_number = 22 or (     content_number = 11 , content_quality = 1 ) group package_id having count(distinct content_number) = 2 
Comments
Post a Comment