我目前正在连接两个表,这些表返回列在列表中的行:
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()
这将返回a
和b
中的正确行和所有列。我怎样才能返回表b
的所有列?
答案 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()