Возвращает пустой результат запроса - MySQL

Узнай цену своей работы

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

создаю и заполняю таблицы:
Листинг программы
  1. create table customers (
  2. id_customer int NOT NULL AUTO_INCREMENT,
  3. name char(50) NOT NULL,
  4. email char(50) NOT NULL,
  5. PRIMARY KEY (id_customer)
  6. );
  7. create table vendors (
  8. id_vendor int NOT NULL AUTO_INCREMENT,
  9. name char(50) NOT NULL,
  10. city char(30) NOT NULL,
  11. address char(100) NOT NULL,
  12. PRIMARY KEY (id_vendor)
  13. );
  14. create table sale (
  15. id_sale int NOT NULL AUTO_INCREMENT,
  16. id_customer int NOT NULL,
  17. date_sale date NOT NULL,
  18. PRIMARY KEY (id_sale),
  19. FOREIGN KEY (id_customer) REFERENCES customers (id_customer)
  20. );
  21. create table incoming (
  22. id_incoming int NOT NULL AUTO_INCREMENT,
  23. id_vendor int NOT NULL,
  24. date_incoming date NOT NULL,
  25. PRIMARY KEY (id_incoming),
  26. FOREIGN KEY (id_vendor) REFERENCES vendors (id_vendor)
  27. );
  28. create table products (
  29. id_product int NOT NULL AUTO_INCREMENT,
  30. name char(100) NOT NULL,
  31. author char(50) NOT NULL,
  32. PRIMARY KEY (id_product)
  33. );
  34. create table prices (
  35. id_product int NOT NULL,
  36. date_price_changes date NOT NULL,
  37. price double NOT NULL,
  38. PRIMARY KEY (id_product, date_price_changes),
  39. FOREIGN KEY (id_product) REFERENCES products (id_product)
  40. );
  41. create table magazine_sales (
  42. id_sale int NOT NULL,
  43. id_product int NOT NULL,
  44. quantity int NOT NULL,
  45. PRIMARY KEY (id_sale, id_product),
  46. FOREIGN KEY (id_sale) REFERENCES sale (id_sale),
  47. FOREIGN KEY (id_product) REFERENCES products (id_product)
  48. );
  49. create table magazine_incoming (
  50. id_incoming int NOT NULL,
  51. id_product int NOT NULL,
  52. quantity int NOT NULL,
  53. PRIMARY KEY (id_incoming, id_product),
  54. FOREIGN KEY (id_incoming) REFERENCES incoming (id_incoming),
  55. FOREIGN KEY (id_product) REFERENCES products (id_product)
  56. );
Листинг программы
  1. INSERT INTO vendors (name, city, address) VALUES
  2. ('Вильямс', 'Москва', 'ул.Лесная, д.43'),
  3. ('Дом печати', 'Минск', 'пр.Ф.Скорины, д.18'),
  4. ('БХВ-Петербург', 'Санкт-Петербург', 'ул.Есенина, д.5');
  5. INSERT INTO customers (name, email) VALUES
  6. ('Иванов Сергей', 'removed@mail.ru'),
  7. ('Ленская Катя', 'removed@mail.ru'),
  8. ('Демидов Олег', 'removed@mail.ru'),
  9. ('Афанасьев Виктор', 'removed@mail.ru'),
  10. ('Пажская Вера', 'removed@mail.ru');
  11. INSERT INTO products (name, author) VALUES
  12. ('Стихи о любви', 'Андрей Вознесенский'),
  13. ('Собрание сочинений, том 2', 'Андрей Вознесенский'),
  14. ('Собрание сочинений, том 3', 'Андрей Вознесенский'),
  15. ('Русская поэзия', 'Николай Заболоцкий'),
  16. ('Машенька', 'Владимир Набоков'),
  17. ('Доктор Живаго', 'Борис Пастернак'),
  18. ('Наши', 'Сергей Довлатов'),
  19. ('Приглашение на казнь', 'Владимир Набоков'),
  20. ('Лолита', 'Владимир Набоков'),
  21. ('Темные аллеи', 'Иван Бунин'),
  22. ('Дар', 'Владимир Набоков'),
  23. ('Сын вождя', 'Юлия Вознесенская'),
  24. ('Эмигранты', 'Алексей Толстой'),
  25. ('Горе от ума', 'Александр Грибоедов'),
  26. ('Анна Каренина', 'Лев Толстой'),
  27. ('Повести и рассказы', 'Николай Лесков'),
  28. ('Антоновские яблоки', 'Иван Бунин'),
  29. ('Мертвые души', 'Николай Гоголь'),
  30. ('Три сестры', 'Антон Чехов'),
  31. ('Беглянка', 'Владимир Даль'),
  32. ('Идиот', 'Федор Достоевский'),
  33. ('Братья Карамазовы', 'Федор Достоевский'),
  34. ('Ревизор', 'Николай Гоголь'),
  35. ('Гранатовый браслет', 'Александр Куприн');
  36. INSERT INTO incoming (id_vendor, date_incoming) VALUES
  37. ('1', '2011-04-10'),
  38. ('2', '2011-04-11'),
  39. ('3', '2011-04-12');
  40. INSERT INTO magazine_incoming (id_incoming, id_product, quantity) VALUES
  41. ('1', '1', '10'),
  42. ('1', '2', '5'),
  43. ('1', '3', '7'),
  44. ('1', '4', '10'),
  45. ('1', '5', '10'),
  46. ('1', '6', '8'),
  47. ('1', '18', '8'),
  48. ('1', '19', '8'),
  49. ('1', '20', '8'),
  50. ('2', '7', '10'),
  51. ('2', '8', '10'),
  52. ('2', '9', '6'),
  53. ('2', '10', '10'),
  54. ('2', '11', '10'),
  55. ('2', '21', '10'),
  56. ('2', '22', '10'),
  57. ('2', '23', '10'),
  58. ('2', '24', '10'),
  59. ('3', '12', '10'),
  60. ('3', '13', '10'),
  61. ('3', '14', '10'),
  62. ('3', '15', '10'),
  63. ('3', '16', '10'),
  64. ('3', '17', '10');
  65. INSERT INTO prices (id_product, date_price_changes, price) VALUES
  66. ('1', '2011-04-10', '100'),
  67. ('2', '2011-04-10', '130'),
  68. ('3', '2011-04-10', '90'),
  69. ('4', '2011-04-10', '100'),
  70. ('5', '2011-04-10', '110'),
  71. ('6', '2011-04-10', '85'),
  72. ('7', '2011-04-11', '95'),
  73. ('8', '2011-04-11', '100'),
  74. ('9', '2011-04-11', '79'),
  75. ('10', '2011-04-11', '49'),
  76. ('11', '2011-04-11', '105'),
  77. ('12', '2011-04-12', '85'),
  78. ('13', '2011-04-12', '135'),
  79. ('14', '2011-04-12', '100'),
  80. ('15', '2011-04-12', '90'),
  81. ('16', '2011-04-12', '75'),
  82. ('17', '2011-04-12', '90'),
  83. ('18', '2011-04-10', '150'),
  84. ('19', '2011-04-10', '140'),
  85. ('20', '2011-04-10', '85'),
  86. ('21', '2011-04-11', '105'),
  87. ('22', '2011-04-11', '70'),
  88. ('23', '2011-04-11', '65'),
  89. ('24', '2011-04-11', '130');
  90. INSERT INTO sale (id_customer, date_sale) VALUES
  91. ('2', '2011-04-11'),
  92. ('3', '2011-04-11'),
  93. ('5', '2011-04-11');
  94. INSERT INTO magazine_sales (id_sale, id_product, quantity) VALUES
  95. ('1', '1', '1'),
  96. ('1', '5', '1'),
  97. ('1', '7', '1'),
  98. ('2', '2', '1'),
  99. ('3', '1', '1'),
  100. ('3', '7', '1');
Когда выполняю запрос:
Листинг программы
  1. SELECT mag_incoming.id_product, mag_incoming.quantity
  2. FROM mag_incoming, products;
отрабатывает нормально - 25 строк. когда делаю:
Листинг программы
  1. SELECT mag_incoming.id_product, mag_incoming.quantity
  2. FROM mag_incoming, products
  3. WHERE mag_incoming.id_product = products.author;
то возвращает пустой запрос, ноль строк. Что здесь неправильно?

Решение задачи: «Возвращает пустой результат запроса»

textual
Листинг программы
  1. SELECT products.name, mag_incoming.quantity
  2. FROM mag_incoming, products
  3. WHERE mag_incoming.id_product=products.id_product;

Объяснение кода листинга программы

  1. SELECT - оператор выбора данных из базы данных
  2. products.name - название переменной, которая будет содержать значения имен продуктов
  3. mag_incoming.quantity - название переменной, которая будет содержать значения количества продуктов
  4. FROM - оператор, указывающий таблицы, из которых нужно выбрать данные
  5. mag_incoming - название таблицы, из которой нужно выбрать данные
  6. products - название таблицы, из которой нужно выбрать данные
  7. WHERE - оператор, указывающий условия выборки данных
  8. mag_incoming.id_product=products.id_product - условие, что нужно выбрать только те строки, где значение id_product в таблице mag_incoming равно значению id_product в таблице products
  9. ; - символ окончания оператора WHERE
  10. ; - символ окончания оператора FROM
  11. ; - символ окончания оператора SELECT
  12. ; - символ окончания оператора FROM
  13. ; - символ окончания оператора WHERE
  14. ; - символ окончания оператора FROM
  15. ; - символ окончания оператора SELECT
  16. ; - символ окончания оператора FROM
  17. ; - символ окончания оператора WHERE
  18. ; - символ окончания оператора FROM
  19. ; - символ окончания оператора SELECT
  20. ; - символ окончания оператора FROM

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут