-1
A
回答
1
可以作假的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;
哪裏是你的來源證明,所有的子查詢比連接慢?
+0
謝謝,這是真的,但我想使用內部聯接,因爲它們比子查詢更快... – Alexander
+1
@Alexander不正確 - _some_子查詢可能會比較慢,但它完全取決於編譯器如何制定計劃。 –
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
所以,如果這是更具可讀性你,然後去了。
相關問題
- 1. 更新同一表的多個連接
- 2. 更新與內部連接到同一個表的優化
- 3. 用內部連接更新兩個表
- 4. 在MySQL中更新一個表內連接本身
- 5. MySQL更新與多個連接到同一個表的查詢
- 6. 內連接更新
- 7. 更新在同一個表
- 8. 更新在同一個表
- 9. 更新同一個表內的行
- 10. 在mysql中的一個連接中選擇並更新同一個表和行
- 11. sqlite3更新與另一個表的內連接
- 12. mysql更新列內連接另一個表
- 13. 將兩個表連接到更多連接到連續的同一個表
- 14. 用3個連接在一個查詢中更新2個不同的表?
- 15. 如何使用更新表內連接
- 16. oracle連接深度,同時更新表
- 17. 內連接並更新
- 18. 更新內部連接 - mysql
- 19. MySQL在同一個表上連接多個連接?
- 20. 更新表內連接與第三個表
- 21. 左連接在同一個表基礎
- 22. JPA,左外連接在同一個表
- 23. MySQL內部連接在同一個表和對上
- 24. 內側連接在同一個表多次
- 25. mysql的更新與表連接 - 更新一個表與其他表的字段
- 26. 通過在同一張桌子上使用多個連接更新表格
- 27. 只更新可能存在多個相同行的連接表中的一行?
- 28. 更新內部連接MySQL在哪兒
- 29. 在內部連接的SQL更新和
- 30. 在同一個TCP連接
我完全不明白你想要什麼。你可以添加一個例子,說明你的行應該像前後一樣嗎? – Dorus
'破碎',爲什麼它壞了? –
@Dorus a = 1和b = 1必須始終具有相同的數字,這很難解釋原因。這是因爲你不能做同一個表的子查詢... – Alexander