gpt4 book ai didi

MySQL 两个表最小值和分组依据

转载 作者:行者123 更新时间:2023-11-29 12:11:32 24 4
gpt4 key购买 nike

我有两个表:产品和产品描述

产品:

Product_ID    Product_Price
1 10
2 20
3 10
4 20
5 10
6 20
7 10
8 10
9 10
10 10

产品描述:

Product_ID    Product_Name
1 Pants - Black
2 Pants - Black
3 Pants - White
4 Pants - White
5 Pants - Red
6 Pants - Red
7 Hat
8 Socks
9 Scarf
10 Bird

基本上,我需要根据购物车中已存在的当前代码来实现代码。

实现需要按产品名称进行分组 - 但提供最便宜的一个。

到目前为止,我已经得到以下内容:

SELECT  p.products_id, p.products_price, pd.products_name

FROM products p

//bof 自定义子查询

join
(
SELECT pp.products_id, pp.products_name, min(pr.products_price) as min_price
from products_description pp
inner JOIN products pr
ON pp.products_id = pr.products_id
group by pp.products_name
)
AS subq on p.products_id = subq.products_id and p.products_price = subq.min_price

//eof自定义子查询

LEFT JOIN products_description pd on p.products_id = pd.products_id

期望的输出:

Product_ID    Product_Name    Product_Price
1 Pants - Black 10
3 Pants - White 10
5 Pants - Red 10
7 Hat 10
8 Socks 10
9 Scarf 10
10 Bird 10

但是发生的事情是裤子被脱掉了。只有产品 7 - 10 剩下......

请问大家有什么想法吗?

最佳答案

您似乎想要每个产品名称的最便宜的产品。查询有点复杂,因为价格和名称信息是分开的。编写查询的一种方法如下:

select p.Product_ID, ppd.Product_Name, p.price
from product_description pd join
products p
on pd.product_id = p.product_id join
(select pd2.Product_name, min(p2.price) as minprice
from product_description pd2 join
products p2
on pd2.product_id = p2.product_id
group by pd2.Product_name
) ppd
on ppd.Product_Name = pd.Product_Name and
ppd.minprice = p.price;

关于MySQL 两个表最小值和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585321/

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