Votre requête n'est pas corrélée, juste un sous-requête ..
ci-dessous est une sous-requête corrélée ..
UPDATE a
SET field1=0
FROM tableA a
WHERE exists (SELECT 1
FROM tableB b
WHERE a.somecol=b.somecol)
un exemple de sous-requête corrélée
select orderid,
(select custname from customers c where c.custid=o.custid) from orders o
ci-dessus requête peut être écrit comme jointure
select orderid,custname
from orders o
join
customers c
on c.custid=o.custid
exécuter les deux requêtes ont tendance à utiliser le même plan d'exécution et les deux ont même coût que well..so nous ne pouvons supposer, ne Corrélés les sous-requêtes de meilleures performances
select orderid,
(select count(orderid) from orders o2 where o2.custid=o.custid)
from orders o
pour ce qui précède corrélés sous-requête, SQL ne peut pas accéder à la table des ordres une seule fois et faire tous les calculs, il devra accéder à la table deux fois ... c'est seulement gotcha je pourrais voir avec sous-requêtes corrélées
Il n'y a pas de règle comme "bon (non corrélé) ou mauvais (sous-requête) "! – jarlh
Et il n'est pas corrélé - c'est juste une sous-requête –
Une sous-requête corrélée inclut une condition avec une référence à la requête principale. – jarlh