Het probleem is dat de procedureparameter dezelfde naam heeft als een kolom in de tabellen. Wanneer u verwijst naar propertyid in de query's gebruikt het de kolom, niet de parameter. Kolom- en variabelenamen zijn niet hoofdlettergevoelig, dus het maakt niet uit of u een van deze PropertyID hebt gespeld en de andere propertyId .
Gebruik een andere naam voor de parameter, b.v. p_propertyId
Er zijn ook geen twee vragen nodig, je kunt het in één doen met een JOIN .
UPDATE sales.florida AS s
CROSS JOIN (
SELECT *
FROM annuals.florida
WHERE propertyId = p_propertyId
LIMIT 1) AS a
SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
WHERE s.PROPERTYUNIQUEID = p_propertyId
Merk op dat het gebruik van LIMIT zonder ORDER BY betekent dat de geselecteerde rij onvoorspelbaar is.