53011


bigqueryというよりも、sqlの初歩的な質問になると思うのですが、  
下記について困っています。

以下のような2種類のテーブルがあります。  
①T_DATE  
DATE,  
2019-01-01  
2019-01-02  
2019-01-03  
・・・

②T_PRODUCT  
PRODUCT,  
A  
B  
C  
・・・

この種類のマスタテーブルから、  
以下のようなテーブルを新規で作りたいです。  
③T_DATE-PRODUCT  
DATE,PRODUCT  
2019-01-01,A  
2019-01-02,A  
2019-01-03,A  
2019-01-01,B  
2019-01-02,B  
2019-01-03,B  
2019-01-01,C  
2019-01-02,C  
2019-01-03,C  
・・・

要は、DATE×PRODUCTユニークのテーブルを作りたいです。  
（いまはいちいちEXCELでお手製マスタを作っているのですが、SQLで完結させたいです）

良きやりかたを教えていただけますと幸いです。

何卒お願いいたします。


CC BY-SA 4.0
2019-02-23T03:39:27.087
52962
2019-02-25T03:13:11.293
27857
question
sql google-bigquery
bigqueryで2つのマスタからユニークkeyを作りたい


意図が違うような気がしますが、回答してみます。

T_DATEとT_PRODUCTテーブルが存在する際に以下のSQLでT_DATE_PRODUCTテーブルに指定の値を設定可能です。

[code]

    insert into T_DATE_PRODUCT select * from T_DATE, T_PRODUCT;
    
[/code]

* * *

以下蛇足です。  
T_DATEとT_PRODUCTが変更された場合に、毎回T_DATE_PRODUCTを作り直す必要があるため、viewの方がよい気がします。  
以下のSQLで作成が可能です。

[code]

    create view V_DATE_PRODUCT as select * from T_DATE, T_PRODUCT;
    
[/code]

* * *

実行SQL

[code]

    drop table if exists T_DATE;
    drop table if exists T_PRODUCT;
    drop table if exists T_DATE_PRODUCT;
    create temp table T_DATE(date date);
    insert into T_DATE values('2019-01-01'),('2019-01-02'),('2019-01-03');
    create temp table T_PRODUCT(product varchar(100));
    insert into T_PRODUCT values('A'),('B'),('C');
    create temp table T_DATE_PRODUCT(date date, product varchar(100));
    
    insert into T_DATE_PRODUCT select * from T_DATE, T_PRODUCT;
    select * from T_DATE_PRODUCT;
    drop view if exists V_DATE_PRODUCT;
    create view V_DATE_PRODUCT as select * from T_DATE, T_PRODUCT;
    select * from V_DATE_PRODUCT;
    
[/code]


CC BY-SA 4.0
2019-02-25T03:13:11.293
53011
2019-02-25T03:13:11.293
13022
52962
answer