我必须使用 INNER JOIN 在表(200.000 条记录)之间进行大量更新:
表1(数据来源):
CODE | AVAILABILITY | PRICE
表 2(唯一带有“CODE”的表):
ID | CODE
表 3(目标表 1):
ID | PRICE
Table4(目标表2):
ID | AVAILABILITY
我必须:
1) SELECT ID from Table2 WHERE table1.code=table2.code LIMIT 1
2) UPDATE PRICE in Table3 WHERE table3.ID=table2.ID LIMIT 1
3) UPDATE AVAILABILITY in Table4 WHERE table4.ID=table2.ID LIMIT 1
如何在单个查询中仅使用 Mysql 实现此目的?
最佳答案
使用这个
UPDATE
table1 t1, table2 t2, table3 t3, table4 t4
SET
t3.price=t1.price, t4.availability=t1.availability
WHERE
t1.code=t2.code AND t2.id=t3.id AND t2.id=t4.id
关于4个表之间的Mysql内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32588393/