Mysql按日期订购

Mysql按日期订购,mysql,Mysql,这是我试图获取前30天数据的查询 SELECT DAY(calendar.datefield) AS callDay, DATE_FORMAT(calendar.datefield,"%d-%m-%Y") AS DataDate, COUNT(user_appoint.`id`) AS total_appt, SUM(CASE WHEN status_id=6 THEN 1 ELSE 0 END) AS fit, SUM(CASE WHEN status_

这是我试图获取前30天数据的查询

    SELECT DAY(calendar.datefield) AS callDay,
    DATE_FORMAT(calendar.datefield,"%d-%m-%Y") AS DataDate,
    COUNT(user_appoint.`id`) AS total_appt,
    SUM(CASE WHEN status_id=6 THEN 1 ELSE 0 END) AS fit,
    SUM(CASE WHEN status_id=7 THEN 1 ELSE 0 END) AS unfit,
    SUM(CASE WHEN status_id=1 THEN 1 ELSE 0 END) AS pending,
    SUM(CASE WHEN status_id=19 THEN 1  ELSE 0 END) AS reexamined
    FROM user_appoint
    RIGHT JOIN calendar ON DATE(user_appoint.`ApptDateTime`) = calendar.`datefield` AND user_appoint.`comp_id` = 123
    WHERE calendar.datefield BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW()
    # and user_appoint.`comp_id` = 123
    GROUP BY calendar.`datefield`
    ORDER BY datadate ASC  
查询的输出如下所示:-

 callDay  DataDate    total_appt     fit   unfit  pending  reexamined  
-------  ----------  ----------  ------  ------  -------  ------------
 ...
 14  14-01-2016           0       0       0        0             0
 15  15-01-2016           3       0       0        3             0
 16  16-01-2016           0       0       0        0             0
 17  17-01-2016           0       0       0        0             0
 18  18-01-2016           0       0       0        0             0
 20  20-12-2015           0       0       0        0             0
 21  21-12-2015           0       0       0        0             0
 22  22-12-2015           1       1       0        0             0
 23  23-12-2015           0       0       0        0             0
 ...

这是给我的数据,本月的升序格式和之后的数据,前一个月的升序格式。我希望上个月的升序格式的数据与当前月份的asc格式的数据相同或更低。

您按照从日期开始创建的字符串进行排序,因此按字母顺序排列

改为按日期排序:

order by calendar.datefield asc;

您按照从日期开始创建的字符串进行排序,因此得到字母顺序

改为按日期排序:

order by calendar.datefield asc;

我总是觉得读取正确的联接有点困难,特别是因为它们的ON子句不引用联接表,而是引用其他表(
和user_appoint.comp_id=123
)。我知道很多人都有这种观点,所以为了可读性,您可能需要重新编写查询以使用左连接。我总是觉得读取右连接有点困难,特别是因为他们的ON子句不引用连接表,而是引用其他表(
和user_appoint.comp_id=123
)。我知道很多人都有这种观点,所以为了可读性,您可能需要重新编写查询,使用左连接。