Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Вложенный запрос.  [new]
Мяфк
Member

Откуда:
Сообщений: 2
Добрый день. Возник вопрос, бьюсь уже несколько часов. Пишу БД, для игры Алхимия.
Есть 2 таблицы, одна с элементами (имя, категория и т.п.), другая с рецептами (айди элемента, айди из чего он делается).
Нужен SQL-запрос, который по уже имеющим элементам, искал бы в таблице рецептов, рецепт который мы можем составить. Например:
В таблице рецептов:
Id Ide Idw
1 7 1
2 7 4
3 10 4
4 10 3
То есть, у нас есть элементы с айди 1, 4. С помощью запроса, мы должны найти заветную семёрку и вернуть её. Проблема в том, что элемент с айди 1, есть и в 10 элементы, но он получится, только в том случае, если у нас есть 3, 4 элемент. Добился только такого результата:
SELECT Recipes.Ide
FROM Recipes, Elements 
WHERE (Recipes.Idw IN (1,4))

При выполнение такого запроса, результат следующий:
автор
Ide
7
7
10

Как же мне изменить мой запрос, так, что бы он находил не только элементы, но и если у них одинаковый Ide, возвращал его.
11 дек 12, 18:55    [13615036]     Ответить | Цитировать Сообщить модератору
 Re: Вложенный запрос.  [new]
Naf
Member

Откуда: Москва
Сообщений: 2695
SELECT Recipes.Ide
FROM Recipes
GROUP BY
Recipes.Ide
HAVING
COUNT(CASE WHEN Recipes.Idw IN (1,4) THEN Recipes.Idw ELSE NULL END)=COUNT(Recipes.Idw)
11 дек 12, 20:18    [13615455]     Ответить | Цитировать Сообщить модератору
 Re: Вложенный запрос.  [new]
Мяфк
Member

Откуда:
Сообщений: 2
Большое спасибо, всё работает.
11 дек 12, 21:06    [13615610]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить