/ / Zapytanie UPDATE MySQL z innej tabeli zwraca 0 zainfekowanych wierszy - mysql

Kwerenda MySQL UPDATE z innej tabeli zwraca 0 zainfekowanych wierszy - mysql

Próbuję zaktualizować ceny produktów w jednej tabeli (ps_product) z innej tabeli (tmp_bmb) na podstawie ich dostawca_referencji.

Poniższe zapytanie działa poprawnie w MySQL:

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

i zwraca 1700 wierszy.

Ale odpowiednie (moim zdaniem) zapytanie UPDATE nie:

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

zwraca 0 uszkodzonych wierszy.

Moje tabele są następujące:

ps_product: dostawca_referencja | Cena £

W ps_product.supplier_reference rekordy nie są unikalne i istnieją również wartości null. Dlatego nie może to być klucz podstawowy.

tmp_bmb: dostawca_referencja | cena (to jest nowa cena)

referencja dostawcy w tmp_bmb jest kluczem podstawowym

Z góry dziękuję za pomoc!

Odpowiedzi:

1 dla odpowiedzi № 1

Wygląda na to, że masz wpływ na 0 wierszy, ponieważ żadne dane się nie zmieniają - oznacza to, że plik ps_product.price jest już taki sam jak plik tmp_bmb.price.

Aby to potwierdzić, wypróbuj to dla początkowego zapytania:

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

i powinieneś otrzymać 0 wierszy.