百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[技术交流] 有mysql高手么。问个查询语句 【新的高级问题】[搞定了!] [复制链接]
查看:747 | 回复:3

79

主题

603

帖子

1万

积分

落伍者(四季发财)

Rank: 4

贡献
70
鲜花
38
注册时间
2013-2-26

落伍手机绑定

发表于 2019-8-25 15:10:52 | |阅读模式 来自 中国山东菏泽
本帖最后由 超级大马甲 于 2019-8-25 19:47 编辑

下面的语句只能输出
click_date count money
2019-08-25 10 12.11
2019-08-24 9 10
2019-08-23 5 100
时间记录数量 价格 (第一条)  【下面Sql只能输出这样】
时间记录数量所有记录的总价格 【我想要这样的】 Sql已改成想要的了



  1. select a.click_date,ifnull(b.count,0) as count,money
  2. from (
  3.     SELECT curdate() as click_date
  4. union all
  5. SELECT date_sub(curdate(), interval 14 day) as click_date
  6. union all
  7. SELECT date_sub(curdate(), interval 13 day) as click_date
  8. union all
  9. SELECT date_sub(curdate(), interval 12 day) as click_date
  10. union all
  11. SELECT date_sub(curdate(), interval 11 day) as click_date
  12. union all
  13. SELECT date_sub(curdate(), interval 10 day) as click_date
  14. union all
  15. SELECT date_sub(curdate(), interval 9 day) as click_date
  16. union all
  17. SELECT date_sub(curdate(), interval 8 day) as click_date
  18. union all
  19. SELECT date_sub(curdate(), interval 7 day) as click_date
  20. union all
  21. SELECT date_sub(curdate(), interval 6 day) as click_date
  22. union all
  23. SELECT date_sub(curdate(), interval 5 day) as click_date
  24. union all
  25. SELECT date_sub(curdate(), interval 4 day) as click_date
  26. union all
  27. SELECT date_sub(curdate(), interval 3 day) as click_date
  28. union all
  29. SELECT date_sub(curdate(), interval 2 day) as click_date
  30. union all
  31. SELECT date_sub(curdate(), interval 1 day) as click_date
  32.     ) a left join (
  33. select FROM_UNIXTIME(asttime, '%Y-%m-%d') AS datetime,sum(money) as money, count(*) as count
  34. from cp_money WHERE status=1 and type=1 and asttime > UNIX_TIMESTAMP(date_sub(curdate(), interval 14 day))
  35. group by datetime
  36. ) b on a.click_date = b.datetime ORDER BY click_date DESC
复制代码



******************************************已解决分割线**************************************************************
例如:

表 cp_message 我要查询 goto='s' 同时 aid=1 还同时要包含aid=null

有啥方法么?

SELECT * FROM `cp_message` WHERE goto = 's' and sid='1'

这样只能查询到 sid=1的 sid为空的没列出。

有点奇葩,有没有其它的方案么?

因为sid为空是全部人都要求收到,sid为当前的id 怎么才能混合进去呢?
看!这里的韭菜最多…割了一茬又一茬!

73

主题

1739

帖子

1931

积分

落伍者(两全齐美)

Rank: 2

贡献
444
鲜花
27
注册时间
2015-11-18

落伍微信绑定落伍者落伍手机绑定

发表于 2019-8-25 15:18:38 | 来自 中国河南郑州
SELECT * FROM `cp_message` WHERE goto = 's' and (sid='1' or sid is null)

点评

+10086 谢谢,竟然忘记 is null这招了。  发表于 2019-8-25 15:48

评分

参与人数 2鲜花 +2 收起 理由
dachangtui + 1 啦啦啦~
超级大马甲 + 1 落伍有你更精彩!

查看全部评分

79

主题

603

帖子

1万

积分

落伍者(四季发财)

Rank: 4

贡献
70
鲜花
38
注册时间
2013-2-26

落伍手机绑定

 楼主| 发表于 2019-8-25 17:38:10 | 来自 中国山东菏泽
ytomorrow 发表于 2019-8-25 15:18
SELECT * FROM `cp_message` WHERE goto = 's' and (sid='1' or sid is null)

大神再顺便请教个sql,能搞不?
下面的语句只能输出
click_date count money
2019-08-25 10 12.11
2019-08-24 9 10
2019-08-23 5 100
时间记录数量 价格 (第一条)  【下面Sql只能输出这样】
时间记录数量所有记录的总价格 【我想要这样的



  1. select a.click_date,ifnull(b.count,0) as count,ifnull(b.money,0) as money
  2. from (
  3.     SELECT curdate() as click_date
  4. union all
  5. SELECT date_sub(curdate(), interval 14 day) as click_date
  6. union all
  7. SELECT date_sub(curdate(), interval 13 day) as click_date
  8. union all
  9. SELECT date_sub(curdate(), interval 12 day) as click_date
  10. union all
  11. SELECT date_sub(curdate(), interval 11 day) as click_date
  12. union all
  13. SELECT date_sub(curdate(), interval 10 day) as click_date
  14. union all
  15. SELECT date_sub(curdate(), interval 9 day) as click_date
  16. union all
  17. SELECT date_sub(curdate(), interval 8 day) as click_date
  18. union all
  19. SELECT date_sub(curdate(), interval 7 day) as click_date
  20. union all
  21. SELECT date_sub(curdate(), interval 6 day) as click_date
  22. union all
  23. SELECT date_sub(curdate(), interval 5 day) as click_date
  24. union all
  25. SELECT date_sub(curdate(), interval 4 day) as click_date
  26. union all
  27. SELECT date_sub(curdate(), interval 3 day) as click_date
  28. union all
  29. SELECT date_sub(curdate(), interval 2 day) as click_date
  30. union all
  31. SELECT date_sub(curdate(), interval 1 day) as click_date
  32.     ) a left join (
  33. select FROM_UNIXTIME(asttime, '%Y-%m-%d') AS datetime,money, count(*) as count
  34. from cp_money WHERE status=1 and type=1 and asttime > UNIX_TIMESTAMP(date_sub(curdate(), interval 14 day))
  35. group by datetime
  36. ) b on a.click_date = b.datetime ORDER BY click_date DESC
复制代码

看!这里的韭菜最多…割了一茬又一茬!

73

主题

1739

帖子

1931

积分

落伍者(两全齐美)

Rank: 2

贡献
444
鲜花
27
注册时间
2015-11-18

落伍微信绑定落伍者落伍手机绑定

发表于 2019-8-25 21:50:41 | 来自 中国河南郑州
本帖最后由 ytomorrow 于 2019-8-25 22:09 编辑

select FROM_UNIXTIME(asttime, '%Y-%m-%d') AS datetime,sum(money) as total, count(*) as count  from cp_money WHERE status=1 and type=1 and asttime > UNIX_TIMESTAMP(date_sub(curdate(), interval 14 day))
group by datetime

前面和后面不变,你组合一下

如果不需要空数据的话,可以只用这一条语句

点评

已经再楼主搞定了。不过还是非常谢谢。 发现mysql 有很多操作需要补充学习啊。  发表于 2019-8-25 23:13
优秀  发表于 2019-8-25 22:43
论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-5-20 04:45 , Processed in 0.102281 second(s), 34 queries , Gzip On.

返回顶部