これは、SQLの実装によって異なります。
SQLは宣言型であり、論理仕様から物理計画を作成するのはオプティマイザー次第です。SQL Serverは、このサブクエリを非相関化して、OUTER JOIN
CREATE TABLE A(id INT PRIMARY KEY, col1 INT, col2 INT, col3 INT)
CREATE TABLE B(aid INT)
CREATE CLUSTERED INDEX ix ON B(aid)
/*Fool optimiser into thinking tables aren't empty*/
update statistics A with rowcount = 1000000, pagecount = 100000
update statistics B with rowcount = 1000000, pagecount = 100000
SELECT col1,
       col2,
       col3,
       (SELECT count( B.aid)
        FROM   B
        WHERE  B.aid = A.id) AS col4
FROM   A 
DROP TABLE A, B 
計画を立てる

これは基本的にと同じです
SELECT col1,
       col2,
       col3,
       Cnt
FROM   (SELECT COUNT(aid) AS Cnt,
               aid
        FROM   B
        GROUP  BY aid) T
       RIGHT OUTER JOIN A
         ON A.id = T.aid 
サブクエリは、物理的な実装としてのRIGHT OUTER JOINwithとして論理的に表されます。MERGE JOINマージ結合は、ネストされたループ結合の行ごとの動作ではなく、各入力を1回処理します。