JOIN してから WHERE でフィルターするのとサブクエリ内でフィルターしてから JOIN するのはどちらが良いのでしょうか?

同じような処理をなので、どちらが効率的だと言い切れない場合があります。
2023年12月8日
ユーザー

今回の例では

SELECT
  comments.id, comments.comment, r.comment as parent
FROM
  comments JOIN comments as r ON comments.parent_id = r.id
WHERE
  r.parent_id = 2;
SELECT
  comments.id, comments.comment, r.comment as parent
FROM
  comments JOIN (
    SELECT * FROM comments WHERE parent_id = 2
  ) as r ON comments.parent_id = r.id;

は同じ結果を得られると思いますが、パフォーマンスなどの点で差異はありますか?

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?