SQL query through an intermediate table

前端 未结 6 1137
孤城傲影
孤城傲影 2020-12-24 03:13

Given the following tables:

Recipes
| id | name
| 1  | \'chocolate cream pie\'
| 2  | \'banana cream pie\'
| 3  | \'chocolate banana surprise\'

Ingredients
         


        
6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-24 03:28

    select r.*
    from Recipes r
    inner join (
        select ri.recipe_id
        from RecipeIngredients ri 
        inner join Ingredients i on ri.ingredient_id = i.id
        where i.name in ('chocolate', 'cream')
        group by ri.recipe_id
        having count(distinct ri.ingredient_id) = 2
    ) rm on r.id = rm.recipe_id
    

提交回复
热议问题