gpt4 book ai didi

sql - 将一些 SQL 查询转换为事件记录

转载 作者:数据小太阳 更新时间:2023-10-29 08:51:29 26 4
gpt4 key购买 nike

所以,我有这个“高级”查询(实际上并不多),我想将它翻译成 Ruby Active Record 的语法。

SELECT microposts.* 
FROM microposts
WHERE user_id IN
( SELECT r.followed_id as uid
FROM relationships r
WHERE follower_id = 1
UNION
SELECT u.id as uid
FROM users as u
WHERE id = 1
)
ORDER BY microposts.created_at DESC

我的想法是检索用户 1 的所有微博和用户 1 按照 desc 创建顺序关注用户,但我真的不知道如何使用 Active Record 的语法轻松翻译它。

有什么想法吗?

PS:正如这里所问的,是一些 rails 上下文:

我有 3 个模型:MicropostsUsersRelationships

  • Relationships 是一个处理所有用户关系(关注者/被关注者)的连接表。
  • 用户通过关系有很多 followed_users/followers。
  • 用户有多个微圈,微圈有一个用户。

谢谢。

最佳答案

不了解 Ruby,但 SQL 可以简化为:

SELECT microposts.* 
FROM microposts
WHERE user_id IN
( SELECT r.followed_id as uid
FROM relationships r
WHERE follower_id = 1
)
OR user_id = 1
ORDER BY microposts.created_at DESC

关于sql - 将一些 SQL 查询转换为事件记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11812727/

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