gpt4 book ai didi

mysql - SQL从连接中获取相似ID的最大值

转载 作者:行者123 更新时间:2023-11-29 01:27:57 26 4
gpt4 key购买 nike

我对更高级的 SQL 查询还很陌生

给定以下表格和相关字段:

PersonId、名字、姓氏

顺序OrderId、PersonId、OrderDateTime

我想编写一个查询,通过 PersonId 连接两个表,并检索每个人及其最近的订单。

所以如果下面的 James Doe (PersonId = 1) 在订单表中有很多订单,

OrderId、PersonId、OrderDateTime

1          1          12/1/2013 9:01 AM

2 1 2/1/2011 5:01 AM

3 2 10/1/2010 1:10 AM

他只需要最近的。

PersonId NameFirst NameLast OrderId OrderDateTime

1 James Doe 1    12/1/2013 9:01 AM 

2 John Doe 3 10/1/2010 1:10 AM

我一直在尝试这样的事情

SELECT p.PersonID, o.OrderID, MAX(o.OrderDateTime) From Person p
JOIN Orders o ON p.PersonID = o.PersonID
GROUP BY p.PersonID,

谢谢

最佳答案

此解决方案中的内部查询是一个临时表,其中包含每个人的最新订单。我将其连接回 Orders 表以获取所需的字段,然后再次连接到 Person 表。

SELECT p.PersonID, p.NameFirst, p.NameLast, o.OrderID, o.OrderDateTime
FROM Person p INNER JOIN Orders o
ON o.PersonId = p.PersonId
INNER JOIN
(
SELECT o1.PersonId, MAX(o1.OrderDateTime) AS maxTime
FROM Orders o1
GROUP BY o1.PersonId
) t
ON o.PersonId = t.PersonId AND o.OrderDateTime = t.maxTime

关于mysql - SQL从连接中获取相似ID的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31544035/

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