我有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
最有效的方法是什么?
答案 0 :(得分:2)
您可以在ORDER BY
子句中使用CASE
:
ORDER BY
CASE WHEN shared_posts.username = '" . $username ."'
THEN shared_posts.date
ELSE posts.date
END DESC