Сначала убедитесь, что SELECT возвращает то, что вы хотите, прежде чем пытаться вставить. Это:
SELECT DISTINCT
u.user_id,
t.num
FROM temp t, users u
WHERE t.name like '%' + u.l_name + '%'
... использует синтаксис ANSI-89 JOIN. Синтаксис соединения ANSI-92 - лучший выбор:
SELECT DISTINCT
u.user_id,
t.num
FROM USERS u
JOIN TEMP t ON t.name LIKE CONCAT('%', u.l_name ,'%')
... но критерии объединения выглядят некорректно. Он будет связывать строки, в которых фамилия указана в значении t.name
, что приводит к проблеме Смита: если фамилия «Смит», все строки будут связаны, даже если имена - Джон, Джим и т. Д. 1008 *