2016-08-27 4 views
3

フラスコWebアプリケーションのマテリアライズドビューを Jeff Widmanの助けを借りて作成しました。SQLAlchemy複数のテーブルで選択可能なクエリを構築する

残念ながら、彼は残念ながら2つのテーブルを結合する方法しか説明していません。私は2つ以上のテーブルを持つマテリアライズドビューを作成したいと思います。私は2番目

select_from(db.join(Table1, Table3, isouter=True)) 

表1は、表2と表3に2体の関係を持って挿入することができますどのように

class AnalyticV(MaterializedView): 
    __table__ = create_mat_view("my_view", 
          db.select([Table1.id.label('id'), 
             Table1.title.label('title'), 
             Table2.location.label('loc'), 
             Table3.time.label('time'),] 
          ).select_from(db.join(Table1, Table2, isouter=True)) 
          ) 

SQLは次のようになります。

SELECT Table1.id AS id, 
     Table1.title AS title, 
     Table2.location AS loc, 
     Table3.time AS time 
FROM Table1 LEFT OUTER JOIN Table2 ON Table2.id = Table1.table2_id 
LEFT OUTER JOIN Table3 ON Table3.id = Table1.table3_id 
+0

私のブログ記事を知ってうれしかったのは便利でした! –

答えて

1

はちょうど別の参加追加

select_from(db.join(Table1, Table2, isouter=True).join(Table3, isouter=True)) 
+0

ありがとう!私はいつもdb.join(Table1、Table2)で試してみました。 –

関連する問題