首页 文章

MySQL加入where和group查询

提问于
浏览
0

我当前正在显示 total order valuequantity of orders 按订单被标记为已发送的日期分组,限制为5.此数据来自我的'orders'表 .

SELECT COUNT(orders_id) AS order_qty,
DATE_FORMAT(last_modified, "%a %D %b") AS day,                   
SUM(order_total) AS daily_total
FROM orders
WHERE orders_status = 3
GROUP BY DATE(last_modified)
ORDER BY DATE(last_modified) DESC
LIMIT 5

结果示例:

  • 8月21日星期一:200.12英镑(10个订单)

  • 8月17日星期四:£210.34(11个订单)

  • 8月15日星期二:£220.56(12个订单)

  • 8月14日星期一:£230.78(13订单)

  • 8月9日星期三:£240.99(14订单)

我想要包含这些订单中包含的商品总数 . 此数据存储在我的'orders_products'表中 . 在这个表中,我有一个名为 products_quantity 的列,如果原始查询中包含订单号,我需要SUM .

我知道我需要使用连接,但是如果 orders 来自我的 orders= 3 然后按发送日期分组,我不知道如何写我的查询来对结果进行分组?

谁能指出我正确的方向?

1 回答

  • 0

    根据订单表加入order_products表并直接求它们 .

    这可能有用,我猜测order_products中的字段名称:

    SELECT COUNT(orders_id) AS order_qty,
    DATE_FORMAT(last_modified, "%a %D %b") AS day,                   
    SUM(order_total) AS daily_total,
    SUM(order_products.products_quantity) as total_items
    FROM orders
    LEFT OUTER JOIN order_products on order_products.orders_id=orders.orders_id
    WHERE orders_status = 3
    GROUP BY DATE(last_modified)
    ORDER BY DATE(last_modified) DESC
    LIMIT 5
    

    已连接的记录将根据已连接表的GROUP BY子句进行分组,并相应地汇总值 .

相关问题