- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIONなどで複数のテーブルから上位10件などSELECTする方法)
UNIONなどで複数のテーブルから上位10件などSELECTする方法
このQ&Aのポイント
- 複数のテーブルをUNIONで結合し、上位10件などをSELECTする方法を教えてください。
- 現在、1店舗1テーブルのデータベースにて、全店の在庫を検索していますが、読み込みに時間がかかっています。上位100件などのデータのみをSELECTしたいです。
- 実際には10店舗ほどからデータを取得する必要があり、1万レコードのデータがあるため、効率的にデータを取得する方法を知りたいです。
- みんなの回答 (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がかかるようにプランされるはずです。
お礼
ありがとうございました。できました。 クエリを書いて頂いて分かりやすかったです。