mysql从字段匹配的左连接插入

mysql从字段匹配的左连接插入,mysql,Mysql,我试图将表2中的值插入到表1中addressB与addressA匹配的位置。到目前为止,我的尝试是下面的代码。该查询似乎在表1中插入了新的空白记录,而不是我希望它执行的操作。有人能告诉我这个问题是否正确吗 INSERT INTO database1.table1 (name) select database2.table2.distName from database2.table2 left join database1.table1 On database2.table2.addressB

我试图将表2中的值插入到表1中addressB与addressA匹配的位置。到目前为止,我的尝试是下面的代码。该查询似乎在表1中插入了新的空白记录,而不是我希望它执行的操作。有人能告诉我这个问题是否正确吗

INSERT INTO database1.table1 (name)
select database2.table2.distName
from database2.table2
left join database1.table1
On database2.table2.addressB = database1.table1.addressA
where database2.table2.addressB = database1.table1.addressA
我的sql小提琴

http://sqlfiddle.com/#!9/aca3e/2

在使用sql之后,我更加确信您需要使用
update
而不是insert

update table1 inner join table2 on table1.addressA=table2.addressB
set table1.distname=table2.distname

插入后table1.id列中的空值是由于table1.id上缺少主键以及同一列上缺少自动增量规范造成的。

在sql FIDLE之后,我更确信您需要使用
更新
而不是插入

update table1 inner join table2 on table1.addressA=table2.addressB
set table1.distname=table2.distname

插入后table1.id列中的空值是由于table1.id上缺少主键以及同一列上缺少自动增量规范造成的。

我真的不明白您想要实现什么!1.使用左连接,然后在何处重复连接条件是没有意义的。改为使用内部联接。2.如果地址已经存在于表1中,那么为什么要插入一条记录而不是更新它?3.您确定表2中填充了
a_distName2
字段吗?我重复了where条件,因为连接没有给出正确的结果。当我只使用查询的select部分时,我得到了我想要的确切结果。表2中存在Yes distName字段如果仅选择部分产生预期结果,则问题在于插入部分,但我们必须查看目标表结构和两个表中的一些示例数据。我将创建sql fiddle示例我不太理解您想要实现的目标!1.使用左连接,然后在何处重复连接条件是没有意义的。改为使用内部联接。2.如果地址已经存在于表1中,那么为什么要插入一条记录而不是更新它?3.您确定表2中填充了
a_distName2
字段吗?我重复了where条件,因为连接没有给出正确的结果。当我只使用查询的select部分时,我得到了我想要的确切结果。表2中存在Yes distName字段如果select部分单独产生预期结果,那么问题在于insert部分,但我们必须查看目标表结构和两个表中的一些示例数据。我将创建sql FIDLE示例
,其中database1.table1.addressA为null内部联接
,则可以避免使用code>内部连接
可以避免使用code>,感谢您花时间了解我的问题。我把要更新的插件弄混了。谢谢你花时间理解我的问题。我把要更新的插件弄混了。您的查询有效
update table1 inner join table2 on table1.addressA=table2.addressB
set table1.distname=table2.distname