Возвращает пустой результат запроса - MySQL
Формулировка задачи:
создаю и заполняю таблицы:
Когда выполняю запрос:
отрабатывает нормально - 25 строк.
когда делаю:
то возвращает пустой запрос, ноль строк. Что здесь неправильно?
Листинг программы
- create table customers (
- id_customer int NOT NULL AUTO_INCREMENT,
- name char(50) NOT NULL,
- email char(50) NOT NULL,
- PRIMARY KEY (id_customer)
- );
- create table vendors (
- id_vendor int NOT NULL AUTO_INCREMENT,
- name char(50) NOT NULL,
- city char(30) NOT NULL,
- address char(100) NOT NULL,
- PRIMARY KEY (id_vendor)
- );
- create table sale (
- id_sale int NOT NULL AUTO_INCREMENT,
- id_customer int NOT NULL,
- date_sale date NOT NULL,
- PRIMARY KEY (id_sale),
- FOREIGN KEY (id_customer) REFERENCES customers (id_customer)
- );
- create table incoming (
- id_incoming int NOT NULL AUTO_INCREMENT,
- id_vendor int NOT NULL,
- date_incoming date NOT NULL,
- PRIMARY KEY (id_incoming),
- FOREIGN KEY (id_vendor) REFERENCES vendors (id_vendor)
- );
- create table products (
- id_product int NOT NULL AUTO_INCREMENT,
- name char(100) NOT NULL,
- author char(50) NOT NULL,
- PRIMARY KEY (id_product)
- );
- create table prices (
- id_product int NOT NULL,
- date_price_changes date NOT NULL,
- price double NOT NULL,
- PRIMARY KEY (id_product, date_price_changes),
- FOREIGN KEY (id_product) REFERENCES products (id_product)
- );
- create table magazine_sales (
- id_sale int NOT NULL,
- id_product int NOT NULL,
- quantity int NOT NULL,
- PRIMARY KEY (id_sale, id_product),
- FOREIGN KEY (id_sale) REFERENCES sale (id_sale),
- FOREIGN KEY (id_product) REFERENCES products (id_product)
- );
- create table magazine_incoming (
- id_incoming int NOT NULL,
- id_product int NOT NULL,
- quantity int NOT NULL,
- PRIMARY KEY (id_incoming, id_product),
- FOREIGN KEY (id_incoming) REFERENCES incoming (id_incoming),
- FOREIGN KEY (id_product) REFERENCES products (id_product)
- );
Листинг программы
- INSERT INTO vendors (name, city, address) VALUES
- ('Вильямс', 'Москва', 'ул.Лесная, д.43'),
- ('Дом печати', 'Минск', 'пр.Ф.Скорины, д.18'),
- ('БХВ-Петербург', 'Санкт-Петербург', 'ул.Есенина, д.5');
- INSERT INTO customers (name, email) VALUES
- ('Иванов Сергей', 'removed@mail.ru'),
- ('Ленская Катя', 'removed@mail.ru'),
- ('Демидов Олег', 'removed@mail.ru'),
- ('Афанасьев Виктор', 'removed@mail.ru'),
- ('Пажская Вера', 'removed@mail.ru');
- INSERT INTO products (name, author) VALUES
- ('Стихи о любви', 'Андрей Вознесенский'),
- ('Собрание сочинений, том 2', 'Андрей Вознесенский'),
- ('Собрание сочинений, том 3', 'Андрей Вознесенский'),
- ('Русская поэзия', 'Николай Заболоцкий'),
- ('Машенька', 'Владимир Набоков'),
- ('Доктор Живаго', 'Борис Пастернак'),
- ('Наши', 'Сергей Довлатов'),
- ('Приглашение на казнь', 'Владимир Набоков'),
- ('Лолита', 'Владимир Набоков'),
- ('Темные аллеи', 'Иван Бунин'),
- ('Дар', 'Владимир Набоков'),
- ('Сын вождя', 'Юлия Вознесенская'),
- ('Эмигранты', 'Алексей Толстой'),
- ('Горе от ума', 'Александр Грибоедов'),
- ('Анна Каренина', 'Лев Толстой'),
- ('Повести и рассказы', 'Николай Лесков'),
- ('Антоновские яблоки', 'Иван Бунин'),
- ('Мертвые души', 'Николай Гоголь'),
- ('Три сестры', 'Антон Чехов'),
- ('Беглянка', 'Владимир Даль'),
- ('Идиот', 'Федор Достоевский'),
- ('Братья Карамазовы', 'Федор Достоевский'),
- ('Ревизор', 'Николай Гоголь'),
- ('Гранатовый браслет', 'Александр Куприн');
- INSERT INTO incoming (id_vendor, date_incoming) VALUES
- ('1', '2011-04-10'),
- ('2', '2011-04-11'),
- ('3', '2011-04-12');
- INSERT INTO magazine_incoming (id_incoming, id_product, quantity) VALUES
- ('1', '1', '10'),
- ('1', '2', '5'),
- ('1', '3', '7'),
- ('1', '4', '10'),
- ('1', '5', '10'),
- ('1', '6', '8'),
- ('1', '18', '8'),
- ('1', '19', '8'),
- ('1', '20', '8'),
- ('2', '7', '10'),
- ('2', '8', '10'),
- ('2', '9', '6'),
- ('2', '10', '10'),
- ('2', '11', '10'),
- ('2', '21', '10'),
- ('2', '22', '10'),
- ('2', '23', '10'),
- ('2', '24', '10'),
- ('3', '12', '10'),
- ('3', '13', '10'),
- ('3', '14', '10'),
- ('3', '15', '10'),
- ('3', '16', '10'),
- ('3', '17', '10');
- INSERT INTO prices (id_product, date_price_changes, price) VALUES
- ('1', '2011-04-10', '100'),
- ('2', '2011-04-10', '130'),
- ('3', '2011-04-10', '90'),
- ('4', '2011-04-10', '100'),
- ('5', '2011-04-10', '110'),
- ('6', '2011-04-10', '85'),
- ('7', '2011-04-11', '95'),
- ('8', '2011-04-11', '100'),
- ('9', '2011-04-11', '79'),
- ('10', '2011-04-11', '49'),
- ('11', '2011-04-11', '105'),
- ('12', '2011-04-12', '85'),
- ('13', '2011-04-12', '135'),
- ('14', '2011-04-12', '100'),
- ('15', '2011-04-12', '90'),
- ('16', '2011-04-12', '75'),
- ('17', '2011-04-12', '90'),
- ('18', '2011-04-10', '150'),
- ('19', '2011-04-10', '140'),
- ('20', '2011-04-10', '85'),
- ('21', '2011-04-11', '105'),
- ('22', '2011-04-11', '70'),
- ('23', '2011-04-11', '65'),
- ('24', '2011-04-11', '130');
- INSERT INTO sale (id_customer, date_sale) VALUES
- ('2', '2011-04-11'),
- ('3', '2011-04-11'),
- ('5', '2011-04-11');
- INSERT INTO magazine_sales (id_sale, id_product, quantity) VALUES
- ('1', '1', '1'),
- ('1', '5', '1'),
- ('1', '7', '1'),
- ('2', '2', '1'),
- ('3', '1', '1'),
- ('3', '7', '1');
Листинг программы
- SELECT mag_incoming.id_product, mag_incoming.quantity
- FROM mag_incoming, products;
Листинг программы
- SELECT mag_incoming.id_product, mag_incoming.quantity
- FROM mag_incoming, products
- WHERE mag_incoming.id_product = products.author;
Решение задачи: «Возвращает пустой результат запроса»
textual
Листинг программы
- SELECT products.name, mag_incoming.quantity
- FROM mag_incoming, products
- WHERE mag_incoming.id_product=products.id_product;
Объяснение кода листинга программы
SELECT
- оператор выбора данных из базы данныхproducts.name
- название переменной, которая будет содержать значения имен продуктовmag_incoming.quantity
- название переменной, которая будет содержать значения количества продуктовFROM
- оператор, указывающий таблицы, из которых нужно выбрать данныеmag_incoming
- название таблицы, из которой нужно выбрать данныеproducts
- название таблицы, из которой нужно выбрать данныеWHERE
- оператор, указывающий условия выборки данныхmag_incoming.id_product=products.id_product
- условие, что нужно выбрать только те строки, где значениеid_product
в таблицеmag_incoming
равно значениюid_product
в таблицеproducts
;
- символ окончания оператораWHERE
;
- символ окончания оператораFROM
;
- символ окончания оператораSELECT
;
- символ окончания оператораFROM
;
- символ окончания оператораWHERE
;
- символ окончания оператораFROM
;
- символ окончания оператораSELECT
;
- символ окончания оператораFROM
;
- символ окончания оператораWHERE
;
- символ окончания оператораFROM
;
- символ окончания оператораSELECT
;
- символ окончания оператораFROM
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д