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

思维卡

我有3张桌子连在一起。其中两个表(“ posts”和“ 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

什么是最有效的方法?

格罗芬德尔

您可以CASEORDER BY子句中使用

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何有条件地加入另外两个馆藏

如何有条件地合并两个相同形状的Numpy数组

有条件地在两个不同的列上填充列值

有条件地将因子级别分为两个不同的级别

如何根据某些伯努利分布有条件地从两个不同的高斯中得出?

从两个表之一有条件地选择值

是否可以(有条件地)从两个不同的集合中查找

如何有条件地将JSON反序列化为枚举的两个不同变体?

有条件地将相同条件拆分为两个不同的表

使用LINQ Entity Framework有条件地从两个列表中获取数据

有条件地合并对象中的两个列表

如何有条件地联接两个表

SQL-有条件地联接和替换两个表之间的值

我如何才能有条件地连接两个不同的数组?

如何有条件地对两个列表的字段求和

如何为Eclipse中的交叉编译项目有条件地包括两个版本相同的名称不同的库?

基于1个表中的2列有条件地联接到两个不同的表

sql-有条件地联接两个表!点火器

如何有条件地将数组中的项目拆分为两个项目?

希望从两个表中有条件地获取数据

如何触发两个承诺并有条件地等待一个?

如何有条件地渲染两个组件?

如何有条件地连接两个表

如何有条件地将两个不同的字符串插入到同一个模板中?

在 Excel 中,如何在两个单独的工作表中匹配两个不同的值后有条件地设置单元格格式?

C# 使用互斥体在两个不同的 Windows 窗体之间有条件地执行方法

如何有条件地渲染两个 JSX 变量?

在 R 中,根据左侧表中指示变量的值,有条件地左连接两个表

如何有条件地从两个不同的 Numpy 数组中选择行?