Проверить запросы - MySQL

Формулировка задачи:

Добрый день. Получил вот такое задание:Создать базу данных электронного компьютерного магазина, в которой должны быть следующие таблицы: catalogs - список торговых групп products - список товаров users - список зарегистрированных пользователей магазина orders - список осуществленных сделок Catalogs (id_catalog -уникальный номер, name - название раздела) Products (id_product - уникальный номер товара, name- название товара, price - цена товара, count- количество товара на складе, description - описание, id_catalog - номер торговой позиции, к которой относится товар) Users( id_user, name - фамилия пользователя, surname - имя пользователя, patronomic - отчество пользователя, phone, email, userstatus - статус пользователя ), статус может принимать значения 'active', 'passive', 'block','gold', по умолчанию - 'passive'. Orders (id_order - номер заказа, id_user, ordertime - время заказа, number – число приобретенных товаров, id_product). Средствами SQL решить задачи: а) Получить список товаров, которые купили покупатели, чьи почтовые электронные адреса расположена на домене gmail.com. б) Получить список покупателей и самый дешевый товар, который они купили.Хотел бы что бы опытный народ проверил запросы (Запрос б) скорее всего не правильный - буду рад помощи). Заранее благодарен. Итак, мои запросы:// созданиеCREATE TABLE catalogs (id_catalogs INT NOT NULL PRIMARY KEY, name VARCHAR(20));CREATE TABLE products (id_product INT NOT NULL PRIMARY KEY, name VARCHAR(20), price DOUBLE, count INT, description TEXT, id_catalog INT); Foreign Key(products.id_catalog) References catalogs.id_catalogs;CREATE TABLE users(id_user INT NOT NULL PRIMARY KEY, name VARCHAR(20), surname VARCHAR(20), patronomic VARCHAR(20), phone VARCHAR(30), email VARCHAR(30), userstatus ENUM('active ', 'passive ', 'block ', 'gold ') NOT NULL DEFAULT 'passive' );CREATE TABLE orders(id_order INT NOT NULL PRIMARY KEY, id_user INT, ordertime DATETIME(), number INT, id_product INT );Foreign Key(orders.id_product.) References products.id_product;Foreign Key(orders.id_user) References users.id_user; //запросы по инфе//Получить список товаров, которые купили покупатели, чьи почтовые электронные адреса расположена на домене gmail.com.SELECT products.name FROM products WHERE products.id_products IN (SELECT orders.id_product FROM orders WHERE orders.id_user IN (SELECT users.id_user FROM users WHERE users.email = "%gmail.com%"));// Получить список покупателей и самый дешевый товар, который они купили.Вот здесь, я точно знаю что он не верен (min там нельзя использовать), но как исправить не знаю.SELECT users.name, users.surname, users.patronomic, products.name FROM users, products WHERE users.id_user = orders.id_user AND products.id_product IN (SELECT orders.id_product FROM orders WHERE min (products.price));Добавлено через 20 часов 36 минутТакой трабл по-быстрому посмотреть запросы и помочь с последним? Я же все сделал, требуется мизерная помощь. Но народу лень. Зато когда я прошу сделать задание за меня сразу налетает куча комментаторов админы и так далее) Четкий форму.

Код к задаче: «Проверить запросы - MySQL»

textual
SELECT users.name, users.surname, users.patronomic, products.name
FROM (
  SELECT orders.id_user, MIN(price) as price  
  FROM
    orders
    JOIN products ON products.id_product  = orders.id_product
  GROUP BY orders.id_user
) as mp
  JOIN orders ON mp.id_user = orders.id_user
  JOIN products ON products.id_product  = orders.id_product AND products.price = mp.price
  JOIN users ON orders.id_user = users.id_user

13   голосов, оценка 3.769 из 5


СОХРАНИТЬ ССЫЛКУ