Сложить данные из 2х таблиц и записать в 3юю - MySQL

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

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

Здравствуйте. Есть 3 таблицы. Как в столбец sum записать сумму ячеек из 2х таблиц? Допустим, tovar1 (1,name1,100р), tovar2 (1,name1,120р), в ячейке sum будет (220р). Мне кажется, вопрос довольно глупый, но sql забыт несколько лет назад.
CREATE TABLE `tovar1` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(32) NOT NULL,
  `price` INT(255) NOT NULL,
  `picture` VARCHAR(255) NOT NULL,
  PRIMARY KEY  (`id`)
);
 
CREATE TABLE `tovar2` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(32) NOT NULL,
  `price` INT(255) NOT NULL,
  `picture` VARCHAR(255) NOT NULL,
  PRIMARY KEY  (`id`)
);
 
CREATE TABLE `orders` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `tov1` VARCHAR(32) NOT NULL,
  `tov2` VARCHAR(32) NOT NULL,
  `sum` INT(32) NOT NULL,
  PRIMARY KEY  (`id`)
);

Решение задачи: «Сложить данные из 2х таблиц и записать в 3юю»

textual
Листинг программы
INSERT INTO orders VALUES(1,1,1,(SELECT w.price + (SELECT e.price FROM tovar2 e WHERE e.id=1) FROM tovar1 w WHERE w.id=1));
commit;

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

  1. Создается новая строка в таблице orders с помощью оператора INSERT INTO.
  2. В скобках указаны значения, которые будут присвоены каждому из трех столбцов новой строки.
  3. Значение для первого столбца (номер заказа) равно 1.
  4. Значение для второго столбца (товар) также равно 1.
  5. Значение для третьего столбца (цена) вычисляется с помощью подзапроса, который включает в себя еще один подзапрос.
  6. Внешний подзапрос (SELECT w.price FROM tovar1 w WHERE w.id=1) выбирает цену из таблицы tovar1 для товара с идентификатором 1.
  7. Внутренний подзапрос (SELECT e.price FROM tovar2 e WHERE e.id=1) выбирает цену из таблицы tovar2 для товара с идентификатором 1.
  8. Результаты обоих подзапросов складываются и присваиваются значению для третьего столбца (цена).
  9. После выполнения операции записи транзакция коммитится с помощью команды COMMIT, чтобы гарантировать, что все изменения будут сохранены.

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

13   голосов , оценка 4.231 из 5
Похожие ответы