我的实际(和破碎)查询是这样的:
UPDATE t_1 SET b=(SELECT b FROM t_1 WHERE a=1) WHERE b=1
如何使用内部联接?
答案 0 :(得分:5)
你可以欺骗MySQL:
UPDATE t_1
SET b=(SELECT b FROM (select * from t_1) t WHERE a=1)
WHERE b=1
加入版本:
update t_1
join (select * from t_1) t
on t.a = 1 and t_1.b=1
set t_1.b= t.b;
您的来源在哪里证明所有子查询都比连接慢?
答案 1 :(得分:0)
嗯,你可以这样做:
UPDATE t_1
SET t1.b=t2.b
FROM T_1 t1
INNER JOIN T_1 t2
ON t2.a=1
WHERE b=1
因此,如果您的阅读更具可读性,那就去吧。