SQLAlchemy join - 返回一个表的所有列

时间:2015-02-26 06:35:42

标签: python select join sqlalchemy

我目前正在连接两个表,这些表返回列在列表中的行:

a = Table('a', server_metadata, autoload=True)
b = Table('b', server_metadata, autoload=True)

tickers = ['1', '2']
res = b.join(a).select().where(asset.c.code.in_(tickers)).execute()

这将返回ab中的正确行和所有列。我怎样才能返回表b的所有列?

1 个答案:

答案 0 :(得分:2)

select对应于SQL查询的SELECT ...部分,默认为*;要将其限制为b.*,您可以为其指定一个包含表格b的列表;但是,使用此构造,您需要将FROM部分包装到select_from中,否则SQLAlchemy将生成子查询片段。因此:

res = select([b]).select_from(b.join(a).\
    where(asset.c.code.in_(tickers))).execute()