我有两个带有公共字段的表,我想找到第一个表中出现但第二个表中没有的所有项目(user_id)。
表 1(用户 ID,...) 表 2(用户 ID,...)
第一个表和第二个表中的 user_id 和 userid 相同。
我有两个带有公共字段的表,我想找到第一个表中出现但第二个表中没有的所有项目(user_id)。
表 1(用户 ID,...) 表 2(用户 ID,...)
第一个表和第二个表中的 user_id 和 userid 相同。
session.query(Table1.user_id).outerjoin(Table2).filter(Table2.user_id == None)
这是未经测试的,因为我还是 SQLAlchemy 的新手,但我认为它应该将您推向正确的方向:
table2 = session.query(Table2.user_id).subquery()
result = session.query(Table1).filter(Table1.user_id.notin_(table2))
我的猜测是这种方法会导致以下 SQL:
SELECT table1.* FROM table1 WHERE table1.user_id NOT IN (SELECT table2.user_id FROM table2)