我有一个问题:
UPDATE table_1 set field_1 = 1 where field_2 IN
(SELECT field_2 from table_2 where field_3 = 1)
然而,对于大型数据库(> 2000ms),这需要很长时间。是否还有使用JOIN重写此查询以避免使用IN?
注意:field_1和field_3上有索引但是它对查询没有帮助。这是使用MySQL。
答案 0 :(得分:1)
UPDATE table_1, table_2
SET table_1.field_1 = 1
WHERE table_1.field_2 = table_2.field_2
AND table_2.field_3 = 1
答案 1 :(得分:0)
所需代码如下,
UPDATE t1
set field_1 = 1
from table_1 t1
join table_2 t2
on t1.field_2 = t2.field_2
where t2.field_3 = 1
答案 2 :(得分:0)
测试了这段代码。
UPDATE table_1 t1
INNER JOIN table_2 t2
SET t1.field_1 = 1
WHERE t1.field_2 = t2.field_2
AND t2.field_3 = 1;
干杯!