我有两个表,我想找到所有的公共字段 item(user_id)出现在第一个表中但不出现在第二个表中。
表1(USER_ID,...) 表2(用户ID,...)
在frist和第二个表中的user_id和userid是相同的。
答案 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)