用mysql取另一張表的數(shù)據(jù)做update可以嗎?
網(wǎng)友解答: 在做update的時(shí)候,經(jīng)常會(huì)遇到想把a(bǔ)表的值,通過公共字段連接修改成b表的值這時(shí)候在oracle中,可以使用update <table1_name tab1set &
在做update的時(shí)候,經(jīng)常會(huì)遇到想把a(bǔ)表的值,通過公共字段連接修改成b表的值
這時(shí)候在oracle中,可以使用
update <table1_name tab1set <column_name = (select <column_name from <table2_name tab2 where tab1.**=tab2.**);
但是相同的操作在mysql中操作,就會(huì)報(bào)錯(cuò),錯(cuò)誤大概:
[Err] 1093 – You can’t specify target table ‘tab1’ for update in FROM clause
原因是對同一張表進(jìn)行了讀寫操作,那么在mysql可以用join的方式去做update:
update <table1_name,<table2_name
set <table1_name.** = <table2_name.**
where <table1_name.** = <table2_name.**; —–公共字段