【问题标题】:mysql order by date and sort parent tablemysql 按日期排序并排序父表
【发布时间】: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,但我查看了一些示例,它们看起来不像那样。
  • 是复制错误。该列是到期日期
  • 具体是什么问题,“不工作”不够清楚。你有错误吗?您是否获得了正确的数据但顺序错误?

标签: mysql join doctrine sql-order-by doctrine-query


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2015-11-25
    • 2012-12-03
    • 1970-01-01
    相关资源
    最近更新 更多