あるデータベース(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で質問しましょう!
似たような質問が見つかりました
- MySQL 共通点はあります。何が違うのでしょうか? 1 2023/01/27 05:22
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle SQL update方法 2 2022/06/22 14:07
- Oracle sqlで質問です。 idを元にidに紐付くデータで住所コードがjpのみのデータ以外のidを取得したい 4 2023/03/20 17:41
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
1テーブル&複数レコードの更新...
-
select文のwhere句に配列を入れ...
-
NOT INをNOT EXISTSで書き直したい
-
SQL Left Join で重複を排除す...
-
MySQLのDATE型カラム値がNULLの...
-
テーブル名を省略して「h.id」...
-
sqlで、600行あるテーブルを100...
-
【初心者】特定の文字に色をつ...
-
SQLにて特定の文字を除いた検索...
-
selectした大量データをinsert...
-
Unionした最後にGROUP BYを追加...
-
WordpressのContact form 7でzi...
-
Postgreのupdateコマンドでエラー
-
MySQLで半角濁音文字の検索
-
[MySQL] UNIQUE制約の値を更新...
-
Access パラメータクエリをcsv...
-
上位3位を求めるSQL文は?
-
HAVING count()で重複したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
SQLサーバから、項目の属性(型...
-
sqlで、600行あるテーブルを100...
-
SQLにて特定の文字を除いた検索...
-
selectした大量データをinsert...
-
inner joinをすると数がおかし...
-
エラー 1068 (42000): 複数の主...
-
SQL Left Join で重複を排除す...
-
Unionした最後にGROUP BYを追加...
-
マイクラPC版のコマンドで効率...
-
Access パラメータクエリをcsv...
-
WordpressのContact form 7でzi...
-
キー毎の、ある列のmaxのレコー...
-
【Transact-sql】 execの結果を...
-
ある条件の最大値+1を初番する...
-
PL/SQLの変数について
-
バインド変数について
おすすめ情報