【SQL】GoogleのBigQuery - テーブル結合について(INNERJOIN)
BigQueryにおけるSQLについて勉強しています。
同じように覚えたての方、勉強中の方向けに
テーブルの結合について、少しつまづいたのでメモを残しておきます。
※Oralceに慣れすぎて同じような書き方をしてしまった。
Aというテーブルと、Bというテーブルの両方に欲しいデータがあり、
これらを結合して必要なデータだけ取り出すことを目指します。
→ FROM文以降の結論から記載します。
【まとめ】
・FROMで使用するテーブル(A)を宣言し、
・INNER JOIN で結合するテーブル(B)を宣言し、
・USING(フィールド名)で結合に使うフィールド名を指定します。
SELECT CastNo,hobby,class
-- 表示する項目を指定
FROM
`dbname.table1`
-- メインで使用するテーブルを指定する
INNER JOIN `dbname.table2`
-- 結合するテーブルを指定する
USING(CastNo);
-- 結合に使うフィールド名を指定する
例では、両方のテーブルにある【CastNo】を結合するキーとしています。
特定のユーザーの、クラスと趣味を別々のテーブルから取得しています。
▼table1の内容
CastNo | Name | class |
---|---|---|
A000 | syana | a |
A001 | kino | s |
A002 | yamada | aa |
A003 | toma | b |
A004 | sagiri | a |
A005 | mikoto | s |
▼table2の内容
CastNo | Hobby |
---|---|
A000 | Magic |
A001 | Journey |
A002 | Music |
A003 | Talk |
A004 | Illust |
A005 | Elk |
▼クエリの結果
CastNo | Hobby | class |
---|---|---|
A000 | Magic | a |
A001 | Journey | s |
A002 | Music | aa |
A003 | Talk | b |
A004 | Illust | a |
A005 | Elk | s |
何かご指摘があれば、ご連絡ください...