【问题标题】:Select rows where a column matches an element of a list SQLAlchemy选择列与列表元素匹配的行 SQLAlchemy
【发布时间】:2025-12-30 22:40:07
【问题描述】:

我有两个包含以下列的表格:

con
---
id
code

pa
---
con_id (foreign key and references con.id)
data

我还有一个清单:

names = ['a', 'b', 'c']

我想加入这两个表以获得具有三列的表/视图:

pa.con_id
pa.data
con.code 

并返回con.codenames 中的元素之一的行。目前,我可以加入我的表并返回所有列:

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()

但我不知道如何创建与我的names 列表中的一项匹配的where

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    使用Columnin_运算符来做@9​​87654323@;然后在您的names 列表中使用它。

    pa.join(contract).select().where(contract.c.code.in_(names)).execute()
    

    【讨论】:

      最近更新 更多