gpt4 book ai didi

sql - 列出发布 Ruby on Rails 5 帖子的用户

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:20 25 4
gpt4 key购买 nike

目前我有这个查询来拉取所有拥有头像的用户:

@users = User.all.order('RANDOM()').where.not(avatar: nil)

但是我还需要检查有帖子的用户。由于帖子位于不同的表中,我该怎么做?

谢谢。

最佳答案

您可以只使用 User 和 Post 之间的关联(如果 Post 是您的模型),这将检查两种情况下的外键和主键是否匹配,最终检查 User 是否记录了一些 Post:

User.order('RANDOM()').joins(:posts).where.not(avatar: nil)
# SELECT "users".*
# FROM "users"
# INNER JOIN "posts" ON
# "posts"."user_id" = "users"."id"
# WHERE ("users"."avatar" IS NOT NULL) ORDER BY RANDOM()

以其他方式,您可以检查关联模型(依赖于 User 的模型)的 id 是否不为 nil,这意味着它作为关联记录存在,例如:

User.order('RANDOM()').joins(:posts).where.not(avatar: nil)
.where.not(posts: { id: nil })

关于sql - 列出发布 Ruby on Rails 5 帖子的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com