sql
1SELECT test1.c1,test2.c2,test3.c3,test3.c4 2FROM test1 INNER JOIN test2 ON test1.no = test2.no 3WHERE test1.c1 = 3
やりたいことはこのSQLのSQLAlchemyでの再現です。
さらに最終的には1つのテーブルの形にしたいと思います。
python
1alchemy = session.query(test1,test2).join(test1,test1.no = test2.no).filter(test1.c1==3).all() 2table = [] 3for item in alchemy: 4 item[1].__dict__.update(item[0].__dict__) 5 table.append(item[1]) 6print(table)
上のやり方までは上手くいきました。
python
1alchemy = session.query(test1,test2).join(test1,test1.no = test2.no).options(load_only(test1.c1,test2.c2,test3.c3,test3.c4)).filter(test1.c1==3).all()
SELECTのカラム指定の部分を再現しようと、load_onlyを足してみると以下のエラーとなります。
sqlalchemy.exc.ArgumentError: Can't apply wildcard ('*') or load_only() loader option to multiple entities mapped class
joinしたテーブルにはload_onlyは使えないということだと思うのですが、このエラーの回避の仕方がわかりません。
最初のコードの時点で、辞書部分をいじってる所でsqlalchemyの機能から外れていて、どこかで間違っているような気がしているのですが
まだ使い始めて日が浅いため、修正できなかったです。
やり方が分かる方いましたらどうか、お教えください。
あなたの回答
tips
プレビュー