/ / MySQL UPDATE запит з іншої таблиці повертає 0 вплив рядків - mysql

MySQL UPDATE запит з іншої таблиці повертає 0 вплив рядків - mysql

Я намагаюся оновити ціну продуктів у одній таблиці (ps_product) з іншої таблиці (tmp_bmb) на основі їх постачальника_посилання.

У MySQL виконується наступний запит:

SELECT * FROM ps_product, tmp_bmb WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference

і повертає 1700 рядків.

Але відповідний (на мій погляд) запит UPDATE не:

UPDATE ps_product, tmp_bmb SET ps_product.price = tmp_bmb.price WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference

повертає 0 вплив рядків.

Мої таблиці схожі на ці:

ps_product: supplier_reference | ціна

У ps_product.supplier_reference записи не є унікальними, і є також нулі. Тому він не може бути первинним ключем.

tmp_bmb: supplier_reference | ціна (це нова ціна)

Посилання постачальника в tmp_bmb є первинним ключем

Велике спасибі за вашу допомогу!

Відповіді:

1 для відповіді № 1

Схоже, ви отримуєте 0 рядків, оскільки це не змінює жодних даних - тобто, ps_product.price вже така ж, як tmp_bmb.price.

Щоб це підтвердити, спробуйте це для вашого початкового запиту:

SELECT * FROM ps_product, tmp_bmb WHERE tmp_bmb.supplier_reference = ps_product.supplier_reference and ps_product.price!=tmp_bmb.price;

і ви повинні отримати 0 рядків.