柘月十七 2022-06-03 11:38 采纳率: 66.7%
浏览 74
已结题

多表连接时,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

请求支援!感谢

  • 写回答

2条回答 默认 最新

  • xcLeigh 全栈领域优质创作者 2022-06-03 17:53
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 赞助了问题酬金5元 6月3日
  • 创建了问题 6月3日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集