I've got a table that contains some groups

Categories Table: 
-- category_id   <-- primary key
-- name

I in addition have a table that contains some features

Features Table: 
-- feature_id   <-- primary key
-- name

And also the many-to-many relation table:

Categories_Features Table: 
-- category_feature_id   <-- primary key
-- category_id
-- feature_id

Now I wish to find all of the groups which have some multiple specific features. For instance all of the groups which have both features with id 3 AND 10.

This is actually the sample query to locate all groups which has the feature with id 10:

choose * from groups inner join groups_features on(groups.category_id = groups_features.category_id) where feature_id = 10

This is a solution:

SELECT * FROM `categories` 
WHERE
category_id in (select category_id from categories_features where feature_id = 3) 
AND
category_id in (select category_id from categories_features where feature_id = 10)