Таблица обновления SQL с использованием значений из другой таблицы - PullRequest
0 голосов
/ 17 декабря 2018

Через несколько дней пройдёт тест на sql.Мы не можем использовать компьютер, поэтому все написано без его помощи.

У меня возникли некоторые проблемы с этим упражнением.

Цель состоит в том, чтобы обновить значения таблицы purchase, используя значения из таблицы product.Если product.production_date больше sold.purchase_date, необходимо установить purchase_date равным production_date.

Вот что я сделал:

update purchase
set purchase_date=product.production_date
from product
where purchase.purchase_date<product.production_date;

Могу ли я сделать это?Я имею ввиду, использовать обновление и из команд вместе?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Вам нужно написать внутренний запрос, чтобы он работал, иначе вы можете получить неверную ошибку SQL.Пример:

update purchase pur
set pur.purchase_date=(select pro.production_date
from product pro
where pur.purchase_date<pro.production_date);

Для более подробной информации проверьте: Обновление оператора с внутренним объединением в Oracle

0 голосов
/ 17 декабря 2018

Пожалуйста, попробуйте запрос ниже, переназначив id с общим столбцом для обеих таблиц.

update purchase
set purchase_date = (SELECT product.production_date 
                   from product 
                  where purchase.id = product.id)
WHERE EXISTS (SELECT 1
          FROM product
          WHERE purchase.id = product.id
            and purchase.purchase_date < product.production_date);
0 голосов
/ 17 декабря 2018

Да, вы можете.Я думаю, что это была опечатка: вы написали updade вместо update.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...