• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIONなどで複数のテーブルから上位10件などSELECTする方法)

UNIONなどで複数のテーブルから上位10件などSELECTする方法

このQ&Aのポイント
  • 複数のテーブルをUNIONで結合し、上位10件などをSELECTする方法を教えてください。
  • 現在、1店舗1テーブルのデータベースにて、全店の在庫を検索していますが、読み込みに時間がかかっています。上位100件などのデータのみをSELECTしたいです。
  • 実際には10店舗ほどからデータを取得する必要があり、1万レコードのデータがあるため、効率的にデータを取得する方法を知りたいです。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

UNION文全体を括って、TOP100を切ればいいでしょう。 SELECT TOP 100 * FROM (SELECT dbo.A店TB.ID, ・・(略)FROM dbo.A店TB WHERE (略) UNION SELECT dbo.C店TB.ID, ・・(略)FROM dbo.C店TB WHERE (略) UNION SELECT dbo.C店TB.ID, ・・(略)FROM dbo.C店TB WHERE (略) ) tmp ORDER BY ... 通常SQL Serverでこのように書くと、それぞれのベーステーブルに対して最大でTOP 100がかかるようにプランされるはずです。

paperbasic
質問者

お礼

ありがとうございました。できました。 クエリを書いて頂いて分かりやすかったです。

関連するQ&A