Update Query With Two Joins
The big problem here is the join between Helper1 and Sanity that causes multiple duplicates, so with larger result sets this is not going to perform well. It is possible to rewrite the update statement so that it does what you need using a CASE expression, rather than a switch. 

UPDATE s
SET itemname =
        CASE s.itemname WHEN 'purple flower' THEN 'lilac'
                        WHEN 'red flower' THEN 'rose'
                        WHEN 'yellow flower' THEN 'daisy'
             ELSE s.itemname
        END
FROM dbo.Sanity s 
    JOIN dbo.Helper1 h ON h.cID = s.cID
    JOIN dbo.SSL12 ss ON ss.LBS = h.LBS ;


Which leaves the data in the Sanity table as:

cID     itemname
----    --------
2222    lilac
2222    foghorn
2222    socks
4212    iguana
4212    camel
8132    red curtains