#mysql #join
#mysql #Присоединиться
Вопрос:
У меня есть вопрос:
UPDATE table_1 set field_1 = 1 where field_2 IN
(SELECT field_2 from table_2 where field_3 = 1)
Однако это занимает МНОГО времени при большой базе данных (> 2000 мс). Есть ли способ переписать этот запрос с помощью JOINs, чтобы отказаться от использования IN?
ПРИМЕЧАНИЕ: Есть индексы для field_1 и field_3, однако это не помогает запросу. Это использование MySQL.
Ответ №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
Ответ №2:
Необходимый код приведен ниже,
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
Ответ №3:
Протестировал этот код.
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;
Приветствия!