gpt4 book ai didi

具有多个连接的 mysql SELECT 查询需要最新的表数据

转载 作者:行者123 更新时间:2023-11-29 00:01:17 25 4
gpt4 key购买 nike

我有一个 mysql 查询,它通过 product_id 将 3 个表链接在一起。

SELECT 
P.product_id, P.title, P.unit,
Pp.date, Pp.price, Pp.wasprice,
C.quantity, C.date_added
FROM productdetail P

INNER JOIN
productprices Pp
ON P.product_id = Pp.product_id

RIGHT JOIN
cart C
ON Pp.product_id = C.product_id
WHERE C.session = :session AND C.quantity > 0

如果在表 productprices 中输入了一个或多个条目,则此查询将提供所有日期。我只需要每个 product_id 的最新条目。因此在下面的 fiddle 中它应该产生 3 个不同的项目,所有项目都有最新的日期。

我创建了一个 sql fiddle 向您展示我的意思,并使您更容易编辑。我尝试了子查询,但都无济于事。

干杯

最佳答案

您可以获得子查询中每个 product_id 的最新date,结果是连接表 productdetail

例如。

SELECT 
P.product_id, P.title,
Pp.date, Pp.price,
C.quantity, C.date_added
FROM
productdetail P
INNER JOIN
productprices Pp
ON P.product_id = Pp.product_id
INNER JOIN

(
SELECT product_id, MAX(date) AS max_date -- << this part will get the latest row
FROM productprices -- << in every product_id
GROUP BY product_id
) maxx
ON Pp.product_id = maxx.product_id

AND Pp.date = maxx.max_date
RIGHT JOIN
cart C
ON Pp.product_id = C.product_id
WHERE C.session = 12345 AND C.quantity > 0

关于具有多个连接的 mysql SELECT 查询需要最新的表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29688724/

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