2017-01-04 3 views
0

2つのテーブルがあります。 1つは名前のリストを持ち、もう1つは特定の日付で構成されています。私は3番目のテーブルに行を挿入する挿入関数を生成できる必要があります。複数の選択によって生成される複数の行を挿入

第1テーブルのすべての行について、第2テーブルのすべての行を第3テーブルに挿入する必要があります。

表1に10行、表2に20行があるとします。挿入関数は200行を挿入できなければなりません。

名前列にはMary、John、Jamesのテーブルがあり、日付列には2017-01.01、2017-05-01、2017-08-08、2016-12-31の別のテーブルがあります。 3番目のテーブルに行を挿入できるようにするためには、名前列にMaryがある日付列に日付の行がすべて、名前列にJohnがあるすべての日付があるようにする必要があります。

私は実際に名前の列に約400の名前を持ち、正確な選択に応じて日付の列に約50の日付を持っています。私はこれを手動で行う必要がありません。

私はグーグルだと思っていますが、正しい検索用語を思いついていません。私はあなたがcross joinを探している

答えて

1

このクエリはあなたに同じ結果を得る必要があり、クロスは必要ありません。

INSERT INTO table3 (name, date) 
SELECT table1.name, table2.date 
FROM table1, table2; 
+0

*決して* FROM句でカンマを使用しないでください。 *常に*明示的な 'JOIN'構文を使用します。 –

1

...を捜しているわけではない答えを得ている、私は思う:

insert into table3 (name, date) 
    select t1.name, t2.date 
    from table1 t1 cross join 
     table2 t2; 
+0

確かに。私はクロスジョイントのマニュアルを見て、それはちょうど私が探していたかもしれないようだ。私は十字結合を使ったことが一度もありません私は明日仕事に戻るときに私は試してみます。ありがとう! – Gusmar

関連する問題