update с select

Renny

Новичок
update с select

Есть две таблицы

id1/time1/metka

id2/time2

Хочу построить запрос, который будет делать апдейт поля метка только у тех строк,
где (time2-time1)>100

Вариант типа:
Выбрать значения из базы 1, а потом в цикле делать по одному update не подходит, в базе около 1000000 записей.


ps:
А может лучше не оним запросом, а через временные таблицы?
 

Renny

Новичок
Так прочитал не один раз, там несколько другое описано, пытаюсь сделать с подзапросом, но не получилось.
PHP:
$res=mysql_query("update table1 set metka='accepted' where id1=(select t1.* from table1 as t1 left join table2 as t2 on t1.id1=t2.id2 where (t1.time1-t2.time2)<=$exptime)") or die(mysql_error());
Error:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select id1 from table1)' at line 1
 

Апельсин

Оранжевое создание
не использовать вложенных SELECT'ов.
Переписать все как multi-table UPDATE через LEFT JOIN.
 

Grumbold

Новичок
update table1 set set metka='accepted'
from table1
inner join table2 ON table1.id1=table2.id2
where (table2.time2-table1.time1)>$exptime
 
Сверху