Оператор обновления SQLLite с помощью JOIN Two Tables

Я хочу обновить свою таблицу продуктов с помощью триггера после вставки нового кортежа в таблицу detail_of_sale.

Я искал эту проблему и пробовал несколько способов решения, но не смог.

Вот мои таблицы.

detail_of_sale (detailID, saleID, productID, количество ...)

товар (productID, сток ...);

Create Trigger editQuantity AFTER INSERT ON detail_of_sale
BEGIN
Update product join detail_of_sale on
detail_of_sale.productID=product.productID set stock=stock-(Select quantity
from detail_of_sale where saleID=new.SaleID);
END
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам не нужен join, просто ссылки на таблицу new:

Update product 
    set stock = stock - new.quantity
    where productID = new.productID;

но в моей таблице товаров нет атрибута saleID.

Emre SERBEST 03.08.2018 11:59

@EmreSERBEST. . . Такова логика написанного вами запроса. Судя по всему, на productID правильное состояние.

Gordon Linoff 03.08.2018 14:20

Спасибо за ваше решение, это такой ясный ответ, когда я вижу ваш ответ, я еще раз вспомнил, что не должен думать слишком сложно :)

Emre SERBEST 03.08.2018 14:40

Попробуйте с этим:

Update product 
    set stock = stock - i.quantity
from product INNER JOIN inserted i on i.productid = productid

Другие вопросы по теме