mea*_*our 3 mysql sql join crud sql-update
我有一张table1 o_id桌子PK, ipaddressb_id
o_id ip b_id
9205 10.10.10.10 null
9206 10.10.10.11 null
9207 10.10.10.12 null
Run Code Online (Sandbox Code Playgroud)
---超过1000行
我还有另一张table2 id桌子PK, ipaddressb_id
id ip o_id
18356 10.10.10.10 null
18357 10.10.10.11 null
18358 10.10.10.12 null
Run Code Online (Sandbox Code Playgroud)
---超过1000行
现在,如果ipaddress两个表都匹配,那么我想更新两个表,这样table2.o_id = table1.o_id并且table1.b_id = table2.id
update table1
set b_id = table2.id
where ip = table2.ip
Run Code Online (Sandbox Code Playgroud)
在这里,我想o_id从第一个表中更新第二个表o_id。我还想b_id从第二个表更新第一个id表。
以上查询正确吗?有没有办法在单个查询中更新两个表?
看看您的请求,您可以使用更新和加入
update table1 t1
inner join table2 t2 on t1.ip = t2.ip
set t1.o_id = t2.o_id,
t1.b_id = t2-id
Run Code Online (Sandbox Code Playgroud)
但是查看您的数据,您有 table2.o_id = null 因此,通过更新,您使所有 o_id (主键)为 null ..这是不可能的(对我来说没有意义)
如果您需要从第二个表中的 id 更新第一个表中的 b_id 那么应该是
update table2 t2
inner join table1 t1 on t1.ip = t2.ip
set t2.o_id = t1.o_id,
t2.id = t1.b_id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |