My actual (and broken) query is this:
UPDATE t_1 SET b=(SELECT b FROM t_1 WHERE a=1) WHERE b=1
How can I do it using a inner join?
My actual (and broken) query is this:
UPDATE t_1 SET b=(SELECT b FROM t_1 WHERE a=1) WHERE b=1
How can I do it using a inner join?
You can cheat MySQL on this:
UPDATE t_1
SET b=(SELECT b FROM (select * from t_1) t WHERE a=1)
WHERE b=1
A join version:
update t_1
join (select * from t_1) t
on t.a = 1 and t_1.b=1
set t_1.b= t.b;
Where is your source proving that all sub queries are slower than joins?
Well, you could do it this way:
UPDATE t_1
SET t1.b=t2.b
FROM T_1 t1
INNER JOIN T_1 t2
ON t2.a=1
WHERE b=1
So if that's more readable for you then go for it.