Это очень очень важный SQL-запрос, после которого базируется весь мой сайт ..
и он не работает ..
Трудно объяснить без примера ..
Есть 2 таблицы, одна - «Таблица ингредиентов», а другая - «Таблица продуктов».
В IngredentsTable У меня есть следующее
- Хлеб
- ChickenBreast
- Лапша
- 1020 * майонез *
- Сыр
- Кетчуп
- масло
и ProductsTable
- Spageti
- Сэндвич с куриной грудкой
И есть ТАБЛИЦА MAPPING, которая соединяет обе таблицы. Имеет IngredientID и ProductID
Теперь Таблица сопоставления
Сэндвич с куриной грудкой - хлеб
Сэндвич с куриной грудкой - майонез
Сэндвич с куриной грудкой - сыр
Сэндвич с куриной грудкой - кетчуп
Спагети --- Лапша
Спагети --- Сыр
Спагети --- Кетчуп
Вы заметите, что Cheese и Ketchup являются общими записями как для куриной грудки, так и для Spageti
Я хочу написать SQL-запрос, который получает идентификаторы продуктов, которые имеют указанные ингредиенты.
Я могу добиться этого частично с помощью следующего запроса
SELECT
ProductTable.id,
ProductTable.Name
FROM ProductTable
INNER JOIN MappingTable
ON ProductTable.id = MappingTable.ProductID
WHERE MappingTable.IngredientID = 5;
Предположим, что 5 был сыром, я успешно смог получить результаты сэндвича с куриной грудкой и спагети
Но если я добавлю еще один, WHERE MappingTable.IngredientID = 5,6; 6, являющийся хлебом, он должен показывать только бутерброд с куриной грудкой, а НЕ спагетти
Я получаю сообщение об ошибке "," синтаксис .. даже "и" не получает результатов.
Как проверить несколько ингредиентов, например WHERE MappingTable.IngredientID = 5,6,7;
ЛЮБАЯ ПОМОЩЬ ОЧЕНЬ ЦЕНА !!!
мне нужно иметь это в одном запросе ..
Пожалуйста, покажите мне варианты