【发布时间】:2022-01-21 11:51:18
【问题描述】:
我有 2 个表(mysql)
- tbl_products
- tbl_counting
我在 tbl_counting 表中收集了 3 个用户的“机架”和“库存”信息。 我想用 tbl_counting 数据更新“tbl_products.rack”和“tbl_products.stock” 在这种情况下(如结果):
- 每个“机架”和“库存”信息必须由至少 3 个用户收集
- tbl_products.rack”和“tbl_products.stock”必须以“Rack”或“Stock”信息的最高频率(至少 2 次)更新
- 如果“Rack”或“Stock”信息重复少于 2 次,请使用“Unknow”指定字段。 (类似结果)
谢谢
1. tbl_products(更新前)
| id | product_name | rack | stock |
|---|---|---|---|
| 1 | apple | ||
| 2 | orange | ||
| 3 | strawberry |
2。 tbl_counting
| product_id | user_id | rack | stock |
|---|---|---|---|
| 1 | 1 | A-1-1 | 20 |
| 1 | 2 | A-1-1 | 10 |
| 1 | 3 | B-1-1 | 20 |
| 2 | 1 | C-1-1 | 10 |
| 2 | 2 | D-2-1 | 30 |
| 2 | 3 | A-3-1 | 30 |
| 3 | 1 | X-3-1 | 25 |
| 3 | 2 | X-1-1 | 10 |
| 3 | 3 | X-3-1 | 25 |
结果:tbl_products(更新后)
| id | product_name | rack | stock |
|---|---|---|---|
| 1 | apple | A-1-1 | 20 |
| 2 | orange | Unknown | 30 |
| 3 | strawberry | X-3-1 | 25 |
select
tbl_counting.product_id,
tbl_counting.rack,
MAX(tbl_counting.stock),
count(*) as freq
from tbl_counting
group by tbl_counting.product_id
having count(*) =(select max(freq)
from (select product_id,count(*) as freq
from tbl_counting group by product_id) tbl_counting)
【问题讨论】:
-
你是怎么解决这个问题的?它停在哪里?为什么停在那里?什么(确切地)出了问题?为什么别人需要解决你的(家庭)工作?
-
为什么
apple的库存是 20 而不是 10?两行都有A-1-1作为rack -
我们在哪里可以找到机架
Unknown?