select *
from user inner join
(select login_id from account where created_time >='xxx') t1
on t1.login_id = user.id;
- 如果能 构造一个 subquery ,然后可以 User.objects.filter(id=Subquery.c.login_id)
- 现在 django 不支持 subquery.c.field 这种方式。
select *
from user inner join
(select login_id from account where created_time >='xxx') t1
on t1.login_id = user.id;
|
krixaarFeb 17, 2022
1
django 不能 id__in 么
|
|
AganzoFeb 17, 2022
2
user_ids = Account.objects.filter(created_time__gt='xxx').values_list('login_id',flat=True).distinct()
User.objects.filter(id__in=user_ids) 应该是这个意思吧,queryset 会自动以子查询形式嵌套 |
|
riiyghFeb 17, 2022
3
没有看到你的 model 。假设 account 有外键 user ,可以这样试试:User.objects.filter(account__created_time__gte='xxx').all()
|
|
4
|
|
krixaarFeb 17, 2022
5
@wuwukai007 #4 2 楼写法等同于
select * from user where id in (select login_id from account where created_time >= 'xxx') |