gpt4 book ai didi

MYSQL 在连接语句中选择 MAX Date

转载 作者:可可西里 更新时间:2023-11-01 06:35:48 25 4
gpt4 key购买 nike

我正在尝试返回一个记录号的历史位置

我有的是:

SELECT l.location, t.transaction_id, t.date_modified 
FROM transactions as t
INNER JOIN (
SELECT
t1.received_id, t1.transaction_id, t1.date_modified
FROM (
SELECT received_id, MAX(date_modified) as maxmodify
FROM transactions
GROUP BY received_id) as max_record
JOIN transactions as t1
ON (t1.received_id =max_record.received_id)
) as whatever
INNER JOIN locations as l
ON l.location_id = t.location_id
INNER JOIN received as r
ON r.received_id = t.received_id
WHERE t.received_id='1782'
ORDER BY t.date_modified DESC

这大约需要 1 分钟来解析并返回如下数据:

T-E1A   67294   2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30
T-E1A 67293 2013-05-29 14:05:30
T-E1A 67294 2013-05-29 14:05:30

我真正希望看到的是来自如下查询的数据:

SELECT l.location, t.transaction_id, t.date_modified FROM transactions as t
JOIN locations as l
ON l.location_id = t.location_id
JOIN received as r
ON r.received_id = t.received_id
WHERE t.received_id='1782'
ORDER BY t.date_modified DESC

哪个返回

T-E1A   67290   2013-05-29 13:58:26
T-E1A 67289 2013-05-29 13:58:26
ADJUST 67283 2013-04-26 11:33:54
ADJUST 67284 2013-04-26 11:33:54
ST10 67279 2013-04-26 09:52:41
ST10 67278 2013-04-26 09:52:13
ST10 67277 2013-04-26 09:50:58
ST10 67276 2013-04-26 09:50:20
SH3 67274 2013-04-26 09:49:39

第二个查询更好,但我真的只想显示每个记录 ID 和位置的最后修改时间。

有人能看出我做错了什么吗?感谢您的帮助。

最佳答案

像这样的……

SELECT t1.received_id
, t1.transaction_id
, t1.date_modified
, l.location
FROM transactions t1
JOIN ( SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id) max_record
ON max_record.received_id = t1.received_id
AND max_record.maxmodify = t1.date_modified
JOIN locations l
ON l.location_id = t1.location_id
JOIN received r
ON r.received_id = t1.received_id
WHERE t1.received_id = '1782'
ORDER
BY t1.date_modified DESC

内核是这个...

SELECT x.*
FROM my_table x
JOIN (SELECT id,MAX(thing) max_thing FROM my_table GROUP BY id) y
ON y.id = x.id
AND y.max_thing = x.thing;

关于MYSQL 在连接语句中选择 MAX Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882073/

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