PostgreSQL - обновить столбец в таблице, читая из другой таблицы - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь обновить SKU столбец в таблице product_identifier , используя то же значение из таблицы product_stock .Я не могу сделать это напрямую.Сначала я должен получить идентификатор варианта из product_variant , а затем найти SKU из product_stock с помощью option_id И, наконец, обновить столбец SKU в таблице product_identifier с помощьюSKU варианта

product_id = SELECT id FROM product

variant_id = SELECT id FROM product_variant WHERE product_id=product_id

sku = SELECT sku FROM product_stock WHERE variant_id=variant_id

UPDATE product_identifier SET sku='sku'

(извините, у меня мало знаний по SQL. я пытался объяснить это, присвоив ему значение)

Резюме кода выше:

Получить продуктидентификаторы из таблицы PRODUCT

Поиск идентификаторов вариантов продукта с использованием идентификатора продукта

Поиск кода SKU для идентификатора варианта

Затем обновите значение SKU в идентификаторе product_identifier с использованием идентификатора продукта

- Образцы таблиц

PRODUCT введите описание изображения здесь

PRODUCT_VARIANT введите описание изображения здесь

PRODUCT_STOCK введите описание изображения здесь

- PS.У одного товара может быть много вариантов

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете использовать предложение FROM в операторе UPDATE.Но вам нужно выяснить, как вы сопоставляете product_identifier с другими таблицами.Ваш вопрос не ясен по этому вопросу:

UPDATE product_identifier pi
    SET sku = ps.sku
    FROM product p JOIN
         product_variant pv
         ON pv.product_id = p.id JOIN
         product_stock ps
         ON ps.variant_id = pv.id
    WHERE pi.? = ?.?;  -- your join condition goes here
...