gpt4 book ai didi

MySQL LEFT JOIN、GROUP BY 和 ORDER BY 未按要求工作

转载 作者:IT王子 更新时间:2023-10-29 00:32:55 24 4
gpt4 key购买 nike

我有一张 table

'products' => ('product_id', 'name', 'description') 

还有一张 table

'product_price' => ('product_price_id', 'product_id', 'price', 'date_updated')

我想执行类似这样的查询

SELECT `p`.*, `pp`.`price` 
FROM `products` `p`
LEFT JOIN `product_price` `pp` ON `pp`.`product_id` = `p`.`product_id`
GROUP BY `p`.`product_id`
ORDER BY `pp`.`date_updated` DESC

您可能猜到价格经常变化,我需要拿出最新的。问题是我不知道如何订购 LEFT JOINed 表。我尝试使用一些 GROUP BY 函数,例如 MAX(),但这只会提取列而不是行。

谢谢。

最佳答案

似乎不可能在 GROUP BY 汇总中使用 ORDER BY。我的基本逻辑是有缺陷的。我需要运行以下子查询。

SELECT `p`.*, `pp`.`price` FROM `products` `p` 
LEFT JOIN (
SELECT `price` FROM `product_price` ORDER BY `date_updated` DESC
) `pp`
ON `p`.`product_id` = `pp`.`product_id`
GROUP BY `p`.`product_id`;

这会影响性能,但由于每一行都是相同的子查询,所以应该不会太糟糕。

关于MySQL LEFT JOIN、GROUP BY 和 ORDER BY 未按要求工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4580479/

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