多表连接时,where多条件对查询出的结果造成乱序影响?

select DATE_FORMAT(a.click_date,'%d') days,ifnull(b.count,0) as count
from (
    SELECT date_sub(curdate(), interval 1 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 2 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 3 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 4 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 5 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 6 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 7 day) as click_date
) a left join (
SELECT
    date(create_time) datetime,
    count(*) count
FROM t_video 
WHERE DATE_SUB( date_sub(curdate(), interval 1 day), INTERVAL 7 DAY ) <= date(create_time) 
GROUP BY datetime
) b on a.click_date = b.datetime;

img

以上是单个where过滤条件的SQL和结果,这样的一个结果顺序是我想要的(因为是日期,今天起过去的一周内的统计),但是我多加一个过滤条件就出现了乱序问题了,不理解下面这样是什么原因。

select DATE_FORMAT(a.click_date,'%d') days,ifnull(b.count,0) as count
from (
    SELECT date_sub(curdate(), interval 1 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 2 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 3 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 4 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 5 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 6 day) as click_date
    union all
    SELECT date_sub(curdate(), interval 7 day) as click_date
) a left join (
SELECT
    date(create_time) datetime,
    count(*) count
FROM t_video 
WHERE DATE_SUB( date_sub(curdate(), interval 1 day), INTERVAL 7 DAY ) <= date(create_time) 
    and category_id = (select id from t_category where category_name ='考证')
GROUP BY datetime
) b on a.click_date = b.datetime;

img

请求支援!感谢

你最外层加个排序就行了 order by days asc

你都没加任何排序(oeder by),完全是任由数据库自身默认的排序(数据库默认的排序你是猜不透猜不完的),所以查询会随着条件和数据的变化千变万化,写sql很基本的一个东西就是声明排序,即用order by,给个建议:除了声明order by 你要的字段排序后最好id主键也在排序中,这是一种最低保证排序(因为排序的字段可能也会完全相同,但id主键却绝不相同,特别是排序字段几条数据刚好都一样然后又没加id排序,分页的时候很容易出问题,如可能第一页和第二页好多数据是重复的)