考虑到MASTER表具有列ID的主键
这是原始查询
UPDATE SET ID = DESC where EXISTS(从MASTER IM2中选择1) IM2.CD_ID =:B2 AND IM2.ID = A.DESC)
这是修改后的查询1
更新SET ID = DESC在哪里A.DESC IN(从MASTER中选择IM2.DESC IM2 WHERE IM2.CD_ID =:B2 AND IM2.ID = A.DESC)
这是修改后的查询2
UPDATE SET ID = DESC WHERE A.DESC =(从MASTER中选择IM2.DESC IM2 WHERE IM2.CD_ID =:B2 AND IM2.ID = A.DESC)
两个修改过的都表现得更好。
3个查询在功能上是否相同?
答案 0 :(得分:2)
不,它们与第一个查询不同。
第一个查询是检查两个条件:
剩下两个查询正在检查三个条件:
请查看条件#2和#3及其含义....
IM2.id = A.DESC
和A.DESC = IM2.DESC
===> IM2.id = IM2.DESC
所以最后两个查询相当于:
....在哪里存在(
选择1来自MASTER IM2
在哪里IM2.CD_ID =:B2和IM2.ID = A.DESC AND IM2.id = IM2.DESC )