2016-07-15 55 views
0

我一直使用本网站来查找我的问题的答案,但这是我第一次提出问题。mysql - 将查询结果插入到与连接相同的表中

我有两个表,并希望查询表和结果插入两列的表1事情是这样的:

SELECT a.column1 from table1 a LEFT Join (SELECT 'column1' from 'table2') AS a ON where a.column1 like '%column1.table2%'; 

基本上然后将结果为column5和column6在表1

我知道这是不正确的,因为它不起作用,它不会更新任何东西。为了测试,我在运行更新命令之前运行select语句进行验证。我需要的另一种说法是:

如果table1中的column1与table2中的column1相似,那么更新table1中的column5与table2中column2中的对应条目并更新table1中的column6与来自table1中的column7以及column3中的对应条目表2;

我意识到这不是最好的解释,但这是我能解释我想要的最好方式。如果需要更多信息,请提问,我会尽我所能解释。

感谢您的任何输入。

回答

0

在MySQL中,你可以在一个单一的更新语句做多表更新使用连接表列表:

update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%') 
set t1.column5=t2.column2, t1.column6=t2.column7 

然而,使用类似的不一定是最好的主意,因为从T2超过1个记录可能与t1中的相同记录相匹配,因此单次t1记录可能会在单次运行中更新多次。

你说明哪个t1字段应该由t2中的哪个字段更新是不准确的,不能真正告诉那里的逻辑。

+0

这是完美的工作。非常感谢 !!!! – noobie01