mysql查询语句在哪里编写_Mysql这样的场景如何给表编写查询语句?

纯sql

SELECT a_name,SUM(pg) '苹果',SUM(jz) '橘子',SUM(yz) '柚子' FROM (

SELECT a_id,

CASE b_id WHEN 1 THEN 1 ELSE 0 END as pg,

CASE b_id WHEN 3 THEN 1 ELSE 0 END as jz,

CASE b_id WHEN 5 THEN 1 ELSE 0 END as yz,

DATE_FORMAT(c_time,'%Y-%m') time FROM C WHERE DATE_FORMAT(c_time,'%Y-%m') = '2016-11'

) d LEFT JOIN A ON d.a_id = A.a_id

GROUP BY d.a_id

输出

+---------+------+------+------+

| a_name | 苹果 | 橘子 | 柚子 |

+---------+------+------+------+

| 小明 | 0 | 1 | 0 |

| 小红 | 1 | 0 | 1 |

+---------+------+------+------+

你这样结合PHP/C#/Java 的话,提供思路,数据分组查询出来后

SELECT * FROM C WHERE DATE_FORMAT(c_time,'%Y-%m') = '2016-11'

结果

+------+------+------+------------+

| c_id | a_id | b_id | c_time |

+------+------+------+------------+

| 2 | 1 | 3 | 2016-11-24 |

| 5 | 2 | 5 | 2016-11-21 |

| 7 | 2 | 1 | 2016-11-25 |

+------+------+------+------------+

代码在做处理,循环 这个结果,省略 for(...){if(...){...}} 相同的 a_id 增加到一个Array中 像这样的结构[{aid:1,pg:0,jz:1,yz:0},{aid:2,pg:1,jz:0,yz:1}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值