2011-07-05 43 views
0

単純なsqliteクエリは非常にゆっくりと実行されています。私は2つのテーブルAとBを持っている、彼らは同じ主キーと異なる列を持っています。私はプライマリキーとAのすべての列とBのすべての列を持つテーブルCを作成したいと思います。私はPythonの接続カーソルcsでこれを実行しています。sqlite:共通キーで2つのテーブルをマージする

cs.execute('create table tableC as select a.*, b.* 
    from tableA a left join tableB b 
    on a.rid = b.id') 

2つのテーブルの行数が等しいため、左結合はOKです。 テーブルのいずれかにすべての列名を書き込むのではなく、id列を複製することを許可しました。

各テーブルは50,000行と約200個の列を持ちます。

これを行うには良い方法はありますか?

+0

なぜ3番目のテーブルを作成するのですか?重複しているようだ。 –

+0

@スティーブン:同意。理想的には、tableBからtableAに列を追加するだけのクエリを記述したいと思います。それ、どうやったら出来るの? –

答えて

0

あなたはcreate a viewの2つのテーブルのライブイメージですが、新しいテーブルのように見えます。しかし、ビューなしの選択よりも速くなることはありません。

ワンショット変換が必要な場合(または必要に応じて、おそらくトリガーによって更新する場合)は、this answerと表示されます。

関連する問題