mysql - MySQL 查询问题

标签 mysql

我有三个表(userfriendsposts)和两个用户(user1user1user1>用户2)。

user1添加user2为好友时,user1就可以看到user2的帖子,就像在Facebook上一样。但仅限user1添加user2为好友日期之后的帖子。我的查询是这样的:

SELECT * FROM posts p JOIN friends f ON p.userid = f.friendid 
AND s.time >= f.friend_since WHERE f.myid='user1id'

然后它会向我提供自添加为好友以来有关 user2 的所有帖子。 但问题是它隐藏了 user1 的帖子,只显示 user2 添加日期后的帖子。

user1 应该可以看到自己的所有帖子以及 user2 的所有帖子,user2 在添加日期之后发布的帖子 friend 。

如何修复它?

最佳答案

您可以使用 UNION 连接另一个查询的结果,如下所示:

SELECT *
FROM posts p 
JOIN friends f ON p.userid = f.friendid AND s.time >= f.friend_since
WHERE f.myid='user1id'
UNION SELECT *
    From posts p 
    WHERE p.userid='user1id'

关于mysql - MySQL 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1855850/

相关文章:

mysql - 缓慢的 mysql 查询(使用 IN)

java - Stringify 对象无法以 JSON 形式存储在 mysql 中

mysql - Apple Search API 以什么字符集返回 JSON?

java - 无法使用 Java 客户端连接到 Raspberry Pi 上的 MySQL

mysql - 选择由给定的先决条件列表完全满足的类(class)

php - 使用 SELECT 查询通过多维数组从数据库中检索数据

mysql - 如何让连续 3 周或以上的用户有订单?

php - 使用什么样的 ID 以及如何将其存储在数据库中?

android - 如何通过 JSON 显示从 DB 到 Android 的所有值

mysql - 存储分隔列表的数据类型