MYSQL包含零项目计数的日期值

MYSQL包含零项目计数的日期值,第1张

MYSQL包含零项目计数日期

为更正答案而编辑:

http://sqlfiddle.com/#!2/ae665/4

SELECt date_format(datefield,'%Y-%m-%d') AS DATE, IFNULL(counts, 0), item_id FROM     dates aLEFT JOIN     (SELECt COUNT(*) as counts, purchase_date,user_id,item_id      FROM items_purchased      WHERe item_id=1     GROUP BY date(purchase_date),item_id )r ON date(a.datefield) = date(r.purchase_date) ;

以上查询基于以下假设:

  1. 表格日期包含要列出的日期范围内的连续日期。
  2. 不太确定项目表的用途。第二个查询是按item_purchased表的purchase_date和item_id分组。
  3. 计数是对特定日期购买的特定商品进行计数(与user_id无关)。

@timpeterson(OP)进行的更新非常感谢@Sel。 这是sqlfiddles,展示了我感兴趣的两个查询:

  1. 单个用户拥有的所有商品(例如
    user_id=11
    )的每日购买量:http://sqlfiddle.com/#!2 / 76c00 / 3
  2. 每天
    item_id=1
    拥有的购买次数
    user_id=11
    :http: //sqlfiddle.com/#!2 / 76c00 / 1

这是第二个链接的SQL代码,以防链接以某种方式损坏:

SELECt date_format(datefield,'%Y-%m-%d') AS DATE, IFNULL(countItem, 0), item_idFROM dates aLEFT JOIN (SELECt countItem, purchase_date,i.user_id,p.item_id FROM (   SELECt count(*) as countItem, purchase_date,user_id,item_id    FROM items_purchased    GROUP BY date(purchase_date),item_id   ) p  inner join items i on i.item_id=p.item_id WHERe p.item_id='1' and i.user_id='11' //just get rid of "p.item_id='1'" to produce the 1st query result)r ON date(a.datefield) = date(r.purchase_date);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5675710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存