如何从两个不同的表中有两个不同的类别有条件地排序

时间:2015-07-17 14:30:23

标签: php mysql

我有3张桌子连在一起。其中两个表("帖子"和" shared_posts")具有日期类别。我想按日期订购,但如果shared_posts.username = $username我希望它使用shared_posts.date而不是posts.date。 (反之亦然)

我不知道该怎么做。这就是我到目前为止所拥有的......

SELECT postid, posts.date, shared_posts.date, posts.username, posts.title
FROM posts
LEFT JOIN posts_views_likes USING (postid) 
LEFT JOIN shared_posts USING (postid) 
WHERE posts.username = '" . $username . "'
OR shared_posts.username = '" . $username . "'
ORDER BY posts.date DESC, shared_posts.date DESC

最有效的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以在ORDER BY子句中使用CASE

ORDER BY
  CASE WHEN shared_posts.username = '" . $username ."'
    THEN shared_posts.date
    ELSE posts.date
  END DESC
相关问题