Nou, het klinkt alsof je naamveld niet uniek is. Uw subquery komt overeen met meer dan één rij, dus u moet ofwel een unieke id vinden die overeenkomt met een andere dan naam, of anders, als u alleen het eerste resultaat van de subquery wilt nemen, doet u dit:
UPDATE TABLE1 SET ID = (SELECT TABLE2.ID FROM TABLE2, TABLE1
WHERE TABLE1.NAME=TABLE2.NAME LIMIT 1) WHERE TABLE1.ID IS NULL