Ist das Problem jetzt eigentlich gelöst?
Das Wesentliche bei so einem Update ist das Datenmodel. Pro Artikel kann es nur einen Preis geben (mal abgesehen von Gruppenpreisen, Rabatten, Sonderkonditionen ... ), aber dies ist dem SQL egal. D.h. Der SUB-Select darf nur einen passenden Datensatz liefern. Dies wird durch eine 1:1 Verknüpfung zwischen den Tabellen garantiert.
Sollte keine 1:1 Verknüpfung bestehen, liegt ein Design- oder Logikfehler vor.
Eine UPDATE-Notlösung wäre der bereits von @DokuLeseHemmung vorgeschlagene Link. Die Ergebnisse werden durch einen Aggregatbefehl auf einen Datensatz verdichtet z.B. MAX() oder auch MIN() , AVG(), SUM() etc.
Code:
UPDATE products_attributes pa
SET pa.options_values_price = ( SELECT MAX(products_userfield_8)
FROM products
WHERE products_model = pa.bestellnummer )
Grüße
Thomas