在做update的時候,經常會遇到想把a表的值,通過公共字段連接修改成b表的值
這時候在oracle中,可以使用
update<table1_name>tab1set<column_name>=(select<column_name>from<table2_name>tab2wheretab1.**=tab2.**);
但是相同的操作在mysql中操作,就會報錯,錯誤大概:
[Err]1093–Youcan’tspecifytargettable‘tab1’forupdateinFROMclause
原因是對同一張表進行了讀寫操作,那么在mysql可以用join的方式去做update:
update<table1_name>,<table2_name>
set<table1_name>.**=<table2_name>.**
where<table1_name>.**=<table2_name>.**;—–公共字段