用mysql取另一张表的数据做update可以吗?

网友解答: 在做update的时候,经常会遇到想把a表的值,通过公共字段连接修改成b表的值这时候在oracle中,可以使用update <table1_name tab1set &

网友解答:

在做update的时候,经常会遇到想把a表的值,通过公共字段连接修改成b表的值

这时候在oracle中,可以使用

update <table1_name tab1set <column_name = (select <column_name from <table2_name tab2 where tab1.**=tab2.**);

但是相同的操作在mysql中操作,就会报错,错误大概:

[Err] 1093 – You can’t specify target table ‘tab1’ for update in FROM clause

原因是对同一张表进行了读写操作,那么在mysql可以用join的方式去做update:

update <table1_name,<table2_name

set <table1_name.** = <table2_name.**

where <table1_name.** = <table2_name.**; —–公共字段

标签: