EXISTS」の2つの方法があります。どちらを使えば良いのか迷うことがあったので、パフォーマンスの比較をしました。学生のIDと名前を保持するテーブルです。高得点の学生のIDを保持するテーブルです。EXISTSそれぞれで、高得点者テーブルにIDが存在しない学生の名前を学生テーブルから取得します。それぞれで処理時間を計測し、パフォーマンスを比較します。JOINの方が処理時間が短い結果になりました。この後何回か実行しましたが毎回経過時間は異なり、かつ両者は毎度同じくらいになったのでほぼ違いはないと言えます。この結果は意外でした。EXISTSの方が早くなると予想していたからです。Joinは全ての行を確認するまで処理を継続します。JOINはNULLチェックのためのフィルタ処理もあるので、コストが高いはずです。高得点者テーブルのデータ数が少なすぎることが原因で処理時間に違いがでなかったのかと思い、高得点者テーブルのデータ数を増やしても結果は変わりませんでした。時間があるときに、再度検証しようと思います。参考書籍SQLスキルを高めるためのおススメ書籍SQLのスキルを高めるには、学校の試験勉強と同じように多くの問題を解いてみるのが効率的です。(スッキリシリーズ)』は、SQLの基本的な内容の解説に加え、200問を超える問題が掲載されているので、SQL初心者が学習に使うのにおススメです。実際、この書籍を新卒1年目の新人さんに2-3週間かけて取組んでもらったことがあり、書籍を読んだ後に簡単なSQLの改修を任せましたが、基本的な部分にはつまずかずに改修を進められました。コメントをキャンセルメールアドレスが公開されることはありません。音楽ポルノグラフィティこのサイトについて製造業のソフトウェア開発部で働くmura-hiroが、ソフトウェアエンジニアの目線で技術とキャリアについてお話します。