4个表之间的Mysql内部连接

标签 mysql inner-join

我必须使用 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/

相关文章:

sql - mysql - 加速正则表达式

c# - 如何在c#中的控制台中显示数据库值

MySQL 日期间隔生成

mysql - 根据另一个表中的主键查找设置新列值

mysql - EMM - 从 H2 迁移到 Mysql

mysql - 连接多个 WordPress MySQL 表

php - 如何在连接表时计算行数

sqlite - SQLite从具有多个条件的内部联接创建 View

mysql 使用 INNER JOIN 选择多个表?

mysql - 使用 mysql 拆分列内的逗号分隔值并计算满足条件的值