mysql 按日期排序并排序父表

Posted

技术标签:

【中文标题】mysql 按日期排序并排序父表【英文标题】:mysql order by date and sort parent table 【发布时间】:2016-05-06 14:35:27 【问题描述】:

我有这两张桌子:

id | name
1  | Mike
2  | Jack

id | id_client | title | due_date   | sort
1  | 1         | Xxxx  | 2016-01-22 | 0
2  | 1         | Xxxx  | 2016-01-24 | 1
3  | 2         | Xxxx  | 2016-01-28 | 0

我需要按日期排序第一个,然后按排序排序第二个。我试过了,但不行:

->createQueryBuilder()
            ->select("a.*","b.*")
            ->from("table_a", "a")
            ->leftJoin("a", "table_b", "b", "a.id = b.id_client")
            ->addOrderBy('b.due_date', 'ASC')
            ->addOrderBy('b.sort', 'ASC')

有什么帮助吗?

【问题讨论】:

您的代码中的due_date 列名真的不正确,还是复制错误? 您确定要使用LEFT JOIN,如果您按要加入的表中的列进行排序吗?如果没有匹配,它应该使用什么日期? 你确定你打电话给leftJoin 正确吗?我不使用 Doctrine,但我查看了一些示例,它们看起来不像那样。 是复制错误。该列是到期日期 具体是什么问题,“不工作”不够清楚。你有错误吗?您是否获得了正确的数据但顺序错误? 【参考方案1】:

根据您的示例代码,您尝试按表 B 中的“due_date”排序,但该列实际上名为“日期”。您没有确切说明您遇到了什么问题,但我会从解决不匹配开始 - 最好将列重命名为“日期”是 mysql 中的保留字,使用它本身可能是一个问题。

【讨论】:

以上是关于mysql 按日期排序并排序父表的主要内容,如果未能解决你的问题,请参考以下文章

创建一个约会数组,按日期排序(MySQL/PHP)

MySQL按4个字段日期和时间排序

MySQL 性能优化:按日期时间字段排序

MySQL 按日期排序和布尔优先级:数字到日期的怪异

我尝试获取一些按日期、编号排序的数据,并获取每件商品的最新价格

sql数据库怎么实现分组并取每组的前1条语句,按日期排序?