【发布时间】:2021-04-05 03:15:48
【问题描述】:
我有 2 张桌子帖子和朋友。我想获取我朋友的所有帖子,但不包括帖子表中的阻止朋友。我使用所有左、右、内连接,但查询返回所有数据,包括块朋友数据。我只想要没有像 facebook 系统那样阻塞的朋友数据。我的表结构是
1.发布表
|post_id|user_id|content|image|is_delete|created|
-------------------------------------------------
| 1 | 1 | hello | 0 | 0 | 2020-12-23 11:12:11 |
-------------------------------------------------
| 2 | 2 | hi1 | 0 | 0 | 2020-12-24 13:33:42 |
-------------------------------------------------
| 3 | 3 | hi2 | 0 | 0 | 2020-12-24 13:33:42 |
-------------------------------------------------
| 3 | 4 | hi3 | 0 | 0 | 2020-12-24 13:33:42 |
-------------------------------------------------
2。朋友桌
|id|user_id|request_id|status|block|created|
--------------------------------------------
| 1 | 1 | 2 | 2 | 1 | 2020-12-23 11:23:23 |
--------------------------------------------
| 1 | 3 | 1 | 2 | 0 | 2020-12-23 11:33:33 |
--------------------------------------------
| 1 | 4 | 1 | 2 | 0 | 2020-12-23 11:33:33 |
--------------------------------------------
我的sql查询是
select
*
from
post p
left join
friends f on (p.user_id = f.user_id or p.user_id = f.request_id)
where
((f.user_id = '1' OR f.request_id = '1')
and f.status = '2'
and f.block !=1
and p.is_delete !=1)
我已将查询更改为阅读 stackoverflow 问题和评论,但结果与下面相同
查询-
select
*
from
post p
left join
friends f on (p.user_id = f.user_id or p.user_id = f.request_id)
and f.status = '2' and f.block !=1
where
((f.user_id = '1' OR f.request_id = '1')
and p.is_delete !=1)
结果是
|post_id|user_id|content|image|is_delete|created|
-------------------------------------------------
| 1 | 1 | hello | 0 | 0 | 2020-12-23 11:12:11 |
------------------------------------------------
| 2 | 2 | hi1 | 0 | 0 | 2020-12-24 13:33:42 |
------------------------------------------------
| 3 | 3 | hi2 | 0 | 0 | 2020-12-24 13:33:42 |
------------------------------------------------
| 3 | 4 | hi3 | 0 | 0 | 2020-12-24 13:33:42 |
-----------------------------------------------
但我想要这个结果
|post_id|user_id|content|image|is_delete|created|
-------------------------------------------------
| 1 | 1 | hello | 0 | 0 | 2020-12-23 11:12:11 |
------------------------------------------------
| 3 | 3 | hi2 | 0 | 0 | 2020-12-24 13:33:42 |
------------------------------------------------
| 3 | 4 | hi3 | 0 | 0 | 2020-12-24 13:33:42 |
------------------------------------------------
请告诉我查询中有什么问题。感谢您的帮助
【问题讨论】:
-
你可以简单地删除块上的友谊。
-
我也做过类似的项目,您可以访问以获得更多想法。 socialcodia.com/famblah谢谢
-
如果您想要朋友的帖子,为什么要
post_id = 1?你的问题不清楚你真正想要什么。