我有一张table
table1 o_id
作为 PK
, ipaddress
, b_id
```
o_id ip b_id
9205 10.10.10.10 null
9206 10.10.10.11 null
9207 10.10.10.12 null
---1000多行
我还有一张table
table2 `id` 作为 `PK` , `ipaddress` , `b_id` ```
id ip o_id
18356 10.10.10.10 null
18357 10.10.10.11 null
18358 10.10.10.12 null
---1000多行
现在,如果 ipaddress
匹配两个表,然后我要更新两个表,以便 table2.o_id = table1.o_id
以及 table1.b_id = table2.id
```
update table1
set b_id = table2.id
where ip = table2.ip
我想更新一下 `o_id` 在第二张table上 `o_id` 在第一张table上。我也想更新一下 `b_id` 在第一个表中 `id` 在第二张table上。
以上查询是否正确?有没有办法在一个查询中同时更新两个表?
2条答案
按热度按时间h43kikqp1#
你的请求也可以用update和join
但是查看您的数据,您的table2.o\u id=null,因此通过更新,您可以使所有的o\u id(主键)为null。。这是不可能的(对我来说毫无意义)
如果您需要从第二个表中的id更新第一个表中的b\u id,那么应该
mepcadol2#
你根本不需要更新!首先要能够基于ip地址字段正确(并且有意义地)更新ref id,该字段要求ip地址在两个表中都是唯一的。因此,如果它是唯一的,您可以使用它来连接表,并从每个表中获取id。因此,当您只需加入表就可以获得它时,不需要存储它。