Select 列与列表元素匹配的行 SQLAlchemy
Select rows where a column matches an element of a list SQLAlchemy
我有两个包含以下列的表:
con
---
id
code
pa
---
con_id (foreign key and references con.id)
data
我也有一个列表:
names = ['a', 'b', 'c']
我想连接两个表以获得一个包含三列的 table/view:
pa.con_id
pa.data
con.code
和 return 行,其中 con.code
是 names
中的元素之一。目前,我可以加入我的表和 return 所有列:
engine = create_engine('postgresql://postgres:postgres@localhost/db')
metadata = MetaData(bind=engine)
pa = Table('pa', metadata, autoload=True)
contract = Table('contract', metadata, autoload=True)
res = pa.join(contract).select().execute()
但我不知道如何做一个 where
来匹配我的 names
列表中的一项。
用Column
的in_
运算符做column in (....)
;然后在 names
列表的过滤器中使用它。
pa.join(contract).select().where(contract.c.code.in_(names)).execute()
我有两个包含以下列的表:
con
---
id
code
pa
---
con_id (foreign key and references con.id)
data
我也有一个列表:
names = ['a', 'b', 'c']
我想连接两个表以获得一个包含三列的 table/view:
pa.con_id
pa.data
con.code
和 return 行,其中 con.code
是 names
中的元素之一。目前,我可以加入我的表和 return 所有列:
engine = create_engine('postgresql://postgres:postgres@localhost/db')
metadata = MetaData(bind=engine)
pa = Table('pa', metadata, autoload=True)
contract = Table('contract', metadata, autoload=True)
res = pa.join(contract).select().execute()
但我不知道如何做一个 where
来匹配我的 names
列表中的一项。
用Column
的in_
运算符做column in (....)
;然后在 names
列表的过滤器中使用它。
pa.join(contract).select().where(contract.c.code.in_(names)).execute()