我创建了一个小型社交网站,其中包含用户生成的内容。如果用户不喜欢自己发布的内容,他们可以选择互相阻止。
所以我使用的是postgresql,我有三个简单的表。
Table User
id (pk) | user_name
1 | a
2 | b
3 | c
Table Post
id (pk) | user_id (fk) | content
1 | 1 | s
2 | 3 | a
3 | 2 | m
4 | 2 | p
Table Block
id (pk) | blocker_id (fk) | blocked_id (fk)
1 | 1 | 2
我编写了一个sql,但是无法编写弹性搜索查询。这是sql语句:
select *
from Post p
where
not exists (select id
from Block
where ((Block.blocked_id = p.user_id) and (Block.blocker_id = @current_user_id)) or ((Block.blocked_id = @current_user_id) and (Block.blocker_id = p.user_id))
我该怎么办?