0

結合を実行して、結果の両方のテーブルから特定のフィールドを取得できるようにしたいと考えています。

私は次のことをしています:

from sqlalchemy import or_, and_, desc
from sqlalchemy.ext.sqlsoup import SqlSoup

db = SqlSoup('mysql://localhost/mydb')

join = (db.table_B, db.table_B.id==db.table_A.id)

query = db.table_A.join(join)

for entry in query:
    print entry

各結果について、 にentryは のすべてのフィールドが含まれており、 のフィールドはまったく表示されtable_Bませんtable_A。フィールド名があいまいなため、これがデフォルトで発生することを認識しています。ただし、FROM 句を手動で指定して、この動作をオーバーライドしたいと考えています。ドキュメントに目を通してみたところ、FROM 句を変更するのは簡単ではないようです。私はそれをうまくやることができませんでした。

のフィールドがentry.my_colどこにあるかを取得できるように、上記のコードに加えることができる正しい変更を誰かが提案していただければ幸いです。my_coltable_A

ありがとう!

4

1 に答える 1

0

わかりました、私はこれを理解しました。問題は、SqlSoup のドキュメントが本当に必要なときに、SqlAlchemy のドキュメントを見ていたことです。

ここで結合を行うための良い例を見つけました: http://docs.sqlalchemy.org/en/rel_0_7/orm/extensions/sqlsoup.html

そして、例で説明されているように実行しようとすると、必要なすべてのフィールドが返されます。

于 2012-08-23T04:59:42.020 に答える