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 按日期排序并排序父表的主要内容,如果未能解决你的问题,请参考以下文章