gpt4 book ai didi

php - SQL JOIN 表具有相同 id 的多个实例

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

我在同一个数据库中有两个表; tableA 具有我需要的日期,而tableB 具有成本。这些表格就像更改日期和成本的文件,因此单个项目会重复多次,但我只想要最近的日期和最低的成本

数据示例:

表A

  LocalSKU: aaa-aaa1 date: 12/1/1
LocalSKU: aaa-aaa1 date: 11/1/3
LocalSKU: aaa-aaa1 date: 10/2/1

表B

  SKU: aaa-aaa1 cost: 0.15
SKU: aaa-aaa1 cost: 5
SKU: aaa-aaa1 cost: 0

期望的结果:

SKU: aaa-aaa1 date: 12/1/1 cost: 0

我尝试了一个简单的查询来使用此查询拉回单个结果:

SELECT MAX(date) 
FROM tableA
WHERE LocalSKU = (SELECT MIN(cost)
FROM tableB
WHERE SKU = tableB.LocalSKU GROUP BY SKU);

产生 0 个结果。

我不熟悉子查询和连接,是否可以通过单个查询来获得所需的结果?我能够在单独的查询中获取我想要的信息,但我在尝试合并数组以组合所需的信息时遇到了困难。

非常感谢您的帮助!

最佳答案

连接表并对结果使用聚合函数。

SELECT a.localsku, MIN(cost), MAX(date)
FROM tableA
JOIN tableB ON a.localsku = b.sku
GROUP BY a.localsku

实际上,先进行分组然后连接子查询可能会提高性能,因为连接大表的成本很高。

SELECT a.localsku, a.date, b.cost
FROM (
SELECT localsku, MAX(date) AS date
FROM tableA
GROUP BY localsku) AS a
JOIN (
SELECT sku, MIN(cost) as cost
FROM tableB
GROUP BY sku) AS b
ON a.localsku = b.sku

关于php - SQL JOIN 表具有相同 id 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710853/

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