1

我有两个带有公共字段的表,我想找到第一个表中出现但第二个表中没有的所有项目(user_id)。

表 1(用户 ID,...) 表 2(用户 ID,...)

第一个表和第二个表中的 user_id 和 userid 相同。

4

2 回答 2

1

session.query(Table1.user_id).outerjoin(Table2).filter(Table2.user_id == None)

于 2013-07-09T07:04:31.240 回答
0

这是未经测试的,因为我还是 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)
于 2013-07-09T09:07:33.197 回答