mysql - 查询以返回每个交货日期所需的产品项目总数 - woocommerce 和 wordpress
问题描述
我正在处理 woocommerce 和 wordpress 中的 sql 查询,其中我有三个需要作为查询结果加入的表。基本上,我想列出交货日期以及当天需要跨多个订单 ID 的总项目。表格如下所示:
TABLE_A
| id | order_id | date |
| 1 | 20 | 2020-04-12 00:00:00 |
| 2 | 21 | 2020-04-14 00:00:00 |
| 3 | 22 | 2020-04-14 00:00:00 |
TABLE_B
| order_item_id | order_item_name | order_id |
| 50 | Item A | 20 |
| 51 | Item B | 20 |
| 52 | Item C | 21 |
| 53 | Item A | 21 |
| 54 | Item A | 22 |
TABLE_C
| detail_id | order_item_id | key | Value |
| 1 | 50 | qty | 2 |
| 2 | 51 | qty | 3 |
| 3 | 52 | qty | 3 |
| 4 | 53 | qty | 4 |
| 5 | 54 | qty | 2 |
期望的结果
| date | order_item_name | total |
| 2020-04-12 00:00:00 | Item A | 2 |
| 2020-04-12 00:00:00 | Item B | 3 |
| 2020-04-14 00:00:00 | Item C | 3 |
| 2020-04-14 00:00:00 | Item A | 6 |
我做了什么:
SELECT
date,
order_item_name,
sum(value) as Total
FROM
TABLE_A
INNER JOIN TABLE_B USING (order_id)
INNER JOIN TABLE_C USING (order_item_id)
GROUP BY order_item_id
但我似乎无法完全正确,任何帮助将不胜感激,谢谢
解决方案
SELECT
date,
order_item_name,
sum(value) as Total
FROM
TABLE_A
INNER JOIN TABLE_B USING (order_id)
INNER JOIN TABLE_C USING (order_item_id)
GROUP BY order_item_name,date
ORDER BY order_id ASC
由于您需要明智的项目日期,因此需要对项目名称和日期执行分组。此查询将获取所需的结果。
推荐阅读
- javascript - 如何修复 MongoDB 连接上的“MongoParseError: Multiple text records not allowed at ...”
- r - 如何用 igraph 计算最大瓶颈路径?
- r - Why manual autocorrelation does not match acf() results?
- c# - 启用将警告视为每个文件的错误
- xpath - Scrapy:以字符串和/或整数形式获取 HTML 类?
- bash - 如何使用目录中的文件前缀动态定义路径?
- java - 出现错误 - 没有符合条件的 bean 类型
- javascript - 如何在 Puppeteer 中找到 document.activeElement
- java - 偶尔而不是强制验证 Json(Entity)
- angular - 未聚焦时的样式输入下划线