snu*_*130 2 mysql sql search sql-like
我试图从两个表中选择数据并将其插入另一个表中.我希望在每个表中的某些内容匹配时选择数据.问题是其中一个比较需要是一样的,我不知所措.sql语句在下面,我相信它至少会显示我想要做的事情.
insert into hr_numbers
(`user_id`, `hr_number`)
select distinct u.user_id, t.num
from temp t, users u
where t.name like '%' + u.l_name + '%';
Run Code Online (Sandbox Code Playgroud)
我试图使用程序,但无法弄清楚,甚至告诉这是否有帮助.
首先,确保SELECT在尝试插入之前返回您想要的内容.这个:
SELECT DISTINCT
u.user_id,
t.num
FROM temp t, users u
WHERE t.name like '%' + u.l_name + '%'
Run Code Online (Sandbox Code Playgroud)
...正在使用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 ,'%')
Run Code Online (Sandbox Code Playgroud)
...但是加入标准看起来有缺陷.它将链接行的最后一个名称出现在t.name值中,导致史密斯问题:如果姓氏是"史密斯",则所有行都将链接起来 - 即使名称是John,Jim等.