连接两个没有唯一标识符的表

时间:2019-07-05 13:16:20

标签: sql sql-server inner-join

使用名称联接两个表

我试图将另一个表中的名称合并为。在table1上是其David john Smith,在table2上是David john,并且没有唯一标识符

select [RSA ID Number],a.Name,a.email,a.[Company Name],a.[start_date],a.Status 
from Sheet1$ as a join dbo.themba$ as e
on  ((e.Name like '%'+ a.name + '%' and a.Name like '%'+ e.Name + '%')
or (e.Name like concat('%', a.Name, '%')and a.Name like concat('%', e.Name, '%')) )  
or  e.Email=a.email

1 个答案:

答案 0 :(得分:1)

您在需要OR的地方使用了AND运算符:

select [RSA ID Number], a.Name, a.email, a.[Company Name], a.[start_date],a.Status 
from Sheet1$ as a join dbo.themba$ as e
on  
  e.Name like concat('%', a.Name, '%') 
  or 
  a.Name like concat('%', e.Name, '%')  
  or  
  e.Email=a.email

您应使用[RSA ID Number]a(它所属表的别名)来限定e列。
在进行字符串连接时,也应保持一致。
使用运算符+或函数concat(),但不能同时使用。