MySQL如何获得用户的活动?

时间:2015-01-25 11:44:44

标签: mysql

我有像这样的SQL表,我想在用户页面中显示用户的活动,我不知道如何写这个查询,所以我的表看起来像这样:

users
 id
 name

posts
 id
 title
 description

posts_likes
 id
 post_id
 user_id
 time

posts_comments
 id
 post_id
 user_id
 time

现在我想向用户展示他们页面中的活动,例如: 您对此信息发表了评论 要么 您喜欢并对此帖发表了评论  按时间顺序,所以我写这样的查询,但它有很多问题......

SELECT posts.id , posts.title , posts_comments.comment , posts_likes.time , posts_comments.time
FROM posts 
JOIN posts_likes ON posts.id=posts_likes.post_id
JOIN posts_comments ON posts.id=posts_comments.post_id
WHERE posts_likes.user_id = 6 AND posts_comments.user_id =6
ORDER BY posts_likes.time, posts_comments.time DESC

因此,当我使用此查询时为我带来帖子,id = 6 评论并喜欢的用户,并且从不向我显示仅用户评论<的帖子/ strong>或用户只喜欢,所以如果有任何人知道如何解决这个问题,我真的很感谢非常感谢... sry for my english < / strong>

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT posts.id , posts.title , posts_comments.comment , posts_likes.time , posts_comments.time
FROM posts 
LEFT JOIN posts_likes ON posts.id=posts_likes.post_id AND posts_likes.user_id = 6
LEFT JOIN posts_comments ON posts.id=posts_comments.post_id AND posts_comments.user_id = 6
WHERE  1
ORDER BY posts_likes.time DESC, posts_comments.time DESC

未测试