
あるデータベース(Google BigQuery)配下に、店舗ごとのデータを格納した、同じ構成のテーブルが数十件あります。
例)
テーブル名:shop01
----------------------------------
product_type | price | shop_id
----------------------------------
タイプA | 100 | 1
タイプB | 200 | 1
タイプC | 300 | 1
shop02
----------------------------------
product_type | price | shop_id
----------------------------------
タイプB | 200 | 2
タイプC | 300 | 2
タイプD | 400 | 2
︙
︙
この場合、例えばこれらすべてのテーブルから、タイプBの価格(price)およびshop_idをすべて取得したい場合、どのようなSQLクエリを書けばいいでしょうか。(「SELECT price, shop_id FROM テーブル名* WHERE...」といった書き方はできず、店舗ごとのデータ同士には関連がないのでJoin句も使わないと思うのですが…)
No.1ベストアンサー
- 回答日時:
UNION ALLを使います。
SELECT price,shop_id FROM shop01
WHERE product_type='タイプB'
UNION ALL
SELECT price,shop_id FROM shop02
WHERE product_type='タイプB'
UNION ALL
SELECT price,shop_id FROM shop03
WHERE product_type='タイプB'
以下、省略
;
簡略化したSQLにもできますが、データ件数が数十万件以上といった場合は、性能上の問題があります。
SELECT price,shop_id FROM
(
SELECT price,shop_id FROM shop01
WHERE product_type='タイプB'
UNION ALL
SELECT price,shop_id FROM shop02
UNION ALL
SELECT price,shop_id FROM shop03
以下、省略
) AS x
WHERE product_type='タイプB'
;
No.2
- 回答日時:
UNION ALLを使います。
SELECT price, shop_id FROM shop01
WHERE product_type='タイプB'
UNION ALL
SELECT price, shop_id FROM shop02
WHERE product_type='タイプB'
UNION ALL
以下、省略
;
もう少し簡略化した書き方もできますが、データ件数が数十万件以上あると性能上、問題になるかも知れません。
SELECT price, shop_id FROM
(
SELECT * FROM shop01
UNION ALL
SELECT * FROM shop02
UNION ALL
以下、省略
) AS x
WHERE product_type='タイプB'
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
よか石けんの口コミや評判
-
1テーブル&複数レコードの更新...
-
”photo id” とは何ぞや?
-
クエリ表示と、ADOで抽出したレ...
-
一つ前のレコードの値と減算し...
-
Unionした最後にGROUP BYを追加...
-
select文のwhere句に配列を入れ...
-
「SELECTして取得できない場合...
-
PL/SQLの変数について
-
mysqlのデータから連続する日数...
-
ストアドのエラーについて
-
NOT INをNOT EXISTSで書き直したい
-
ソート順の一番若い者を取得する
-
Updateの複数テーブル条件時のL...
-
INで抽出した順番に並び替え(S...
-
SQLサーバから、項目の属性(型...
-
inner joinをすると数がおかし...
-
ある条件の最大値+1を初番する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
エラー 1068 (42000): 複数の主...
-
SQLサーバから、項目の属性(型...
-
select文のwhere句に配列を入れ...
-
SQL Left Join で重複を排除す...
-
Access パラメータクエリをcsv...
-
マイクラPC版のコマンドで効率...
-
【Transact-sql】 execの結果を...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
1テーブル&複数レコードの更新...
-
PL/SQLの変数について
-
WordpressのContact form 7でzi...
-
複数テーブルのGROUP BY の使い...
-
バインド変数について
-
inner joinをすると数がおかし...
-
MySQLのint型で001と表示する方...
-
updateを1行ずつ実行したい。
おすすめ情報