在sqlalchemy中查找表之间的缺失值

时间:2013-07-09 06:15:26

标签: python sqlalchemy

  

我有两个表,我想找到所有的公共字段   item(user_id)出现在第一个表中但不出现在第二个表中。

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

在frist和第二个表中的user_id和userid是相同的。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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)