rails获取右联接上不存在的记录



我正在尝试获取一个联接表的查询,其中右表中的记录不存在,用于特定参数。

假设一个用户应该每天发布电子邮件,并且电子邮件模型将创建一个日期。我想让那些没有在特定日期发布电子邮件的用户。

我试着使用不存在,也不在,但没有用。或者我的语法不正确,或者我遗漏了什么。

User.joins(:emails).where("emails.date not in ('2021-01-24') and emails.id is null)

这可能吗?

感谢

您可以从不同的角度尝试:

date = Date.parse('2021-01-24')
user_ids = Email.where(date: date).pluck(:user_id)
User.where.not(id: user_ids)

最新更新