Уважаемые знатоки SQL.
База данных:
product(продукты)
-id(int)
-name(varchar 255)
recipe(рецепты)
-id
-name(varchar 255)
-description(text)
-cooking_time(int) //время приготовления
recipe_product(связь рецепт-продукт)
-id(int)
-recipe_id(int)
-product_id(int)
-product_weight(int) //масса продукта
cooking_method(способ приготовления)
-id(int)
-name(int)
recipe_cooking_method(связь рецепт-способ приготовления)
-id(int)
-recipe_id(int)
-cooking_method_id(int)
Необходимо получить рецепты по id продуктов и их массе, по времени приготовления и по способу приготовления.
Вот как я пока делаю:
а) по id 1-го продукта (нестрогий поиск)
SELECT recipe.id,recipe.name,recipe.description,recipe.cooking_time
FROM recipe JOIN recipe_product
ON(recipe_product.recipe_id=recipe.id AND recipe_product.product_id = 1)
б) по id 1-го продукта и массе 1-го продукта (нестрогий поиск)
SELECT recipe.id,recipe.name,recipe.description,recipe.cooking_time
FROM recipe JOIN recipe_product
ON(recipe_product.recipe_id=recipe.id AND recipe_product.product_id = 1 AND recipe_product.product_weight > 800)
Но - это не строгий поиск, а как найти рецепты в которых есть только этот продукт, а других быть не должно. А как сделать такой поиск по нескольким продуктам и рецептам? Может БД неправильно спроектировал?
Подскажите плиз. Заранее благодарю)