Не могу составить sql запрос правильно

Есть база данных, в ней таблицы:

PRODUCT (id, name)

RECIPE (id, name, description, cooking_time)

RESIPE_PRODUCT (id, resipe_id, product_id, product_weight)

COOKING_METHOD (id, name)

RESIPE_COOKING_METHOD (id, recipe_id, cooking_method_id)

Нужно получить рецепты по id продуктов и их массе, по времени приготовления и по способу приготовления. Как это сделать?

Элементарно просто: вам нужен простой join запрос, не более того.

https://itvdn.com/ru/video/sql-essential

Ещё если в таблице RECIPE_PRODUCT пара id уникальная, то из днной таблицы можно удалить искуственный ключ id и сделать целую пару одним primary key.

SELECT `recipe_id`, COUNT(*) AS `count`
  FROM `recipe_product`
  WHERE (`product_id` = 1 AND `product_weight` > 100)
    OR (`product_id` = 2 AND `product_weight` BETWEEN 200 AND 400)
    OR (`product_id` = 3 AND `product_weight` < 10)
  GROUP BY `recipe_id`
  HAVING `count` = 3

Вот ещё как вариант поиск рецептов в которые входят только указанные продукты:

SELECT `recipe_id`, COUNT(*) AS `count`
  FROM `recipe_product`
  WHERE `recipe_id` NOT IN (SELECT `recipe_id` FROM `recipe_product` WHERE `product_id` NOT IN (1, 2, 3))
    AND ((`product_id` = 1 AND `product_weight` > 100)
      OR (`product_id` = 2 AND `product_weight` BETWEEN 200 AND 400)
      OR (`product_id` = 3 AND `product_weight` < 10))
  GROUP BY `recipe_id`
  HAVING `count` = 3