Как сделать вложенный запрос в sql

введите сюда описание изображения Пробовала два этих запроса, либо ничего не выводится, либо все вперемешку. Не знаю, какой запрос тогда здесь нужен

SELECT * FROM products WHERE price>(SELECT AVG(price) FROM products WHERE category =(SELECT id FROM categories WHERE id=1))

SELECT * FROM products WHERE id=(SELECT id FROM categories WHERE id=1 and price=(Select price FROM products WHERE price>(SELECT AVG(price) FROM products)))

Ответы (1 шт):

Автор решения: SwaD

По хорошему, ваш запрос должен выглядеть как то так, что бы соответствовать условию задачи

SELECT * -- Берем нужные поля
FROM products p -- Из таблицы
WHERE price > ( -- где стоимость больше
  SELECT AVG(price) -- среднего 
  FROM products pavg -- из таблицы
  WHERE pavg.category = p.category -- где категория равна категории внешнего запрос
)
and category = ( -- и ИД категории равно
  SELECT id FROM categories WHERE name = 'Джинсы' -- ИД категории с названием джинсы
)

Если отбирать по названию ID не требуется, то:

SELECT * FROM products p
WHERE price > (
  SELECT AVG(price) 
  FROM products pavg
  WHERE pavg.category = p.category
)
and category = 1 -- Указываете любую категорию
→ Ссылка