• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL ある条件を指定して検索する)

SQLで条件指定して検索する方法と性能面を重視するポイント

このQ&Aのポイント
  • SQLを使用して条件を指定してデータを検索する方法を教えてください。また、データベースの性能を重視するために注意すべきポイントも教えてください。
  • データベースには500万レコードがあり、毎晩1回SQLを実行して特定の条件を満たす行を取得する必要があります。特定の条件はflag列の値が1である行です。どのようなSQLを使用すれば効率的にデータを取得できるでしょうか?
  • データベースのテーブルにはnum、name、year、point、flagという列があります。flag列には通常は0が入りますが、時折1が入ることがあります。毎晩1回SQLを実行してflag列の値が1である行の行数、num、pointを取得する必要があります。効率的なSQLの書き方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

select count(*) from tbl where flag=1; select num,point from tbl where flag=1; の二つのSQLを実行するのでは駄目なのですか? Flag列にINDEXを作成すればそんなに遅くはならない気がするのですが。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

これでできると思います。 SELECT A.cnt,B.num,B.point FROM (SELECT 1 key,COUNT(*) cnt FROM テーブル WHERE flag=1) A LEFT JOIN (SELECT 1 key,num,point FROM テーブル WHERE flag=1) B ON A.key=B.key 予想出力例 cnt num point 2  102 20 2  104 10

すると、全ての回答が全文表示されます。

関連するQ&A