gpt4 book ai didi

mysql - 仅选择不同的 'names' 并按其 'newest date' 对它们进行排序

转载 作者:行者123 更新时间:2023-12-01 00:11:58 26 4
gpt4 key购买 nike

我使用 MySQL 数据库来管理组织的捐赠。捐赠者可以进行多次捐赠。因此我有两个表:donators 包含有关捐赠者的信息,donations 包含有关捐赠时间和金额的信息。两个表都通过 donatorID 连接。

我想读出每个不同捐赠者的信息。该列表应按最后一次捐赠的日期排序。我想出了下面的代码,但是它使用了第一次捐赠的日期而不是最后一次捐赠的日期。

我如何使用每个捐赠者的最新捐赠日期?

SELECT
DISTINCT(`donators`.`name`),
`donators`.`city`,
`donators`.`country`,
`donators`.`website`
FROM
`donators`
INNER JOIN
`donations`
ON
`donators`.`donatorID` = `donations`.`donatorID`
ORDER BY `donations`.`date` DESC

最佳答案

SELECT  a.*, b.max_DATE
FROM Donators a
INNER JOIN
(
SELECT DonatorID, MAX(date) max_DATE
FROM Donations
GROUP BY DonatorID
) b ON a.DonatorID = b.DonatorID
ORDER BY b.max_DATE DESC

如果你想让donation表的记录根据最近的捐赠日期显示,

SELECT  a.*, c.*
FROM Donators a
INNER JOIN Donations c
ON a.DonatorID = c.DonatorID
INNER JOIN
(
SELECT DonatorID, MAX(date) max_DATE
FROM Donations
GROUP BY DonatorID
) b ON c.DonatorID = b.DonatorID AND
c.date = b.max_DATE
ORDER BY c.date DESC

关于mysql - 仅选择不同的 'names' 并按其 'newest date' 对它们进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414550/

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