gpt4 book ai didi

database - 如何根据 MySql 上另一个表行的 id 从 max(id) 行中选择值

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:00 24 4
gpt4 key购买 nike

我有包含 id 、 sku 、 amount 、 columns 的产品表。
id 和 sku 是唯一列。

       products table 
---------------------------
sku | amount
----------------|----------
1-13-013-000 | 765.00
4-670-140-NB12 | 864.00
4-670-153f-NS16 | 912.00
5-616-40 | 86.00

另一张表是 movements with id , sku , balance
在这个表中只有 id 是唯一的。

       movements table           
id | sku | balance
---|----------------|----------
1 | 5-51-51 | 765.00
2 | 5-616-40 | 11.00
3 | 5-704-40 | 709.00
4 | 5-616-40 | 67.00
5 | 1-13-013-000 | 414.00
6 | 5-704-40 | 415.00
7 | 4-670-140-NB12| 313.00
8 | 5-616-40 | 79.00
9 | 1-83-019-2 | 11.00
10 | 5-616-40 | 86.00
11 | 4-670-140-NB12| 811.00
12 | 1-13-013-000 | 765.00

我想比较和检查产品表上的每个 sku 是否有移动
(所以我需要检查运动表)并通过最高 ID 找到最后一个运动
在移动表中比较余额和金额。
我想得到这个结果

  --------------------------------------                                
sku | amount | balance
----------------|------------|--------
1-13-013-000 | 765.00 | 765.00
4-670-140-NB12 | 864.00 | 811.00 <- No match
4-670-153f-NS16 | 912.00 | <-no movement
5-616-40 | 86.00 | 79.00

我不需要备注 <- No match<-no movement
任何帮助表示赞赏!
感谢阅读,
阿隆

最佳答案

如果您尝试从移动表中获取 MAX,那么您得到的结果似乎不正确。

id |  sku           | balance
---|----------------|----------
1 | 5-51-51 | 765.00
2 | 5-616-40 | 11.00
3 | 5-704-40 | 709.00
4 | 5-616-40 | 67.00
5 | 1-13-013-000 | 414.00
6 | 5-704-40 | 415.00
7 | 4-670-140-NB12| 313.00
8 | 5-616-40 | 79.00
9 | 1-83-019-2 | 11.00
10 | 5-616-40 | 86.00 <-- Max of 5-616-40
11 | 4-670-140-NB12| 811.00 <-- Max of
12 | 1-13-013-000 | 765.00 <-- Max of 1-13-013-000

这应该会给你想要的结果:

SELECT p.sku, p.amount, m.balance
FROM products p
LEFT JOIN
(SELECT sku, MAX(balance) AS balance FROM movements
GROUP BY sku) m ON m.sku = p.sku

结果

|             SKU | AMOUNT | BALANCE |--------------------------------------|    1-13-013-000 |    765 |     765 ||  4-670-140-NB12 |    864 |     811 || 4-670-153f-NS16 |    912 |  (null) ||        5-616-40 |     86 |      86 |

See it in action

关于database - 如何根据 MySql 上另一个表行的 id 从 max(id) 行中选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com