注意:我正在使用SQLAlchemy,但我选择将我的想法转换为常规SQL,以便更多人可以回答/阅读此问题。
我正在尝试选择表中不在过滤器中的所有条目。我通过将user_id与table_id相关联来获取过滤器。我目前使用
进行实施 select * from cleared_table where user_id=user_id
然后我构建了第二个选择语句,
select * from table where table_id != first_id and table_id != second_id ....
我正在寻找一种方法将其压缩成单个SQL语句,而不必两次访问数据库。
示例已清除,
cleared_table
user_id | table_id
1 | 1
1 | 2
1 | 3
2 | 2
3 | 3
答案 0 :(得分:1)
您可以使用NOT IN
和子查询:
select
*
from
table
where
table_id not in (select
table_id
from
cleared_table where user_id=user_id)
答案 1 :(得分:1)
您正在寻找嵌套查询。
select * from table where table_id not in (select table_id from cleared_table where user_id=user_id)