sql - 从非阻塞用户获取帖子

标签 sql ruby-on-rails postgresql activerecord

我正在尝试从未阻止“我”的用户那里获取一些帖子。 Se 模型如下:

User
  id
  username
  ....

Post
  id
  user_id
  content
  ...

Blockings
  blocker_id
  blocked_id

我需要从所有 未阻止我的用户那里获取帖子。

我获取所有帖子:

@posts Post.all

但我该如何将其连接在一起。

SELECT * FROM posts WHERE "posts.user_id isn't blocking me"

我有一个名为 current_user 的助手,它返回当前登录的用户“我”。

最佳答案

使用 SQL 的一种方法是:

select *
  from post
  where user_id not in 
    (select blocker_id 
    from blockings
    where blocked_id = 1);

只需用变量替换数字 id。

SQL Fiddle

关于sql - 从非阻塞用户获取帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155462/

相关文章:

sql - 通过了解 SQL 脚本中的信息来检索数据

mysql - JPA ManyToMany 连接表自动设置索引唯一

c# - 如今“形状 - 追加”查询等效性

ruby-on-rails - 在实例依赖范围的情况下解析 N + 1

ruby-on-rails - 用户为页面指定的 css

python - Django 竞争条件 : code does not fetch newly created records

java - 方法向数据库语句返回空值

javascript - Capybara 无法识别动态添加的 DOM 元素?

sql - 如何获取最后一个条件=注册的数据?

sql - 在 POSTGRES 中高效的 SQL 表连接或查询?如何以及做什么?