gpt4 book ai didi

mysql - 如何在mySQL中获取与MAX(DATE)对应的FIELD?

转载 作者:行者123 更新时间:2023-11-29 16:37:44 24 4
gpt4 key购买 nike

我的两个表如下:

Table 1 : Transaction
TRANS_ID (primary key), TRANS_DATE, TRANS_STATUS, USER_ID (Foreign_Key)

当状态改变时,相同的user_id将会重复

Table 2 : Users
USER_ID (Primary_Key), USER_NAME, USER_DOB, OTHER_INFO

我想获取用户信息以及上次交易状态。

我熟悉以下查询。

SELECT MAX(Transaction.TRANS_DATE),Transaction.TRANS_STATUS, Users.USER_NAME, Users.USER_DOB
FROM Users
INNER_JOIN Transaction ON Transaction.USER_ID = Users.USER_ID
WHERE Transaction.USER_ID = @UserID

我使用 Parameter.AddWithValue 传递UserID。不幸的是,此方法不会返回 MAX(TRANS_DATE)TRANS_STATUS。它确实返回 MAX(TRANS_DATE),但 TRANS_STATUS 是第一次出现,而不是 MAX(TRANS_DATE) 对应的 STATUS > 记录。

请告诉我如何获取 MAX(TRANS_DATE)TRANS_STATUS。我更喜欢使用INNER JOIN,但建议很感激。

我仍然无法开始工作。

这是我的表格脚本。

CREATE TABLE `Transactions` (
`TRANS_ID` int(11) NOT NULL,
`TRANS_DATE` datetime NOT NULL,
`TRANS_STATUS` varchar(45) NOT NULL,
`USER_ID` int(11) NOT NULL,
PRIMARY KEY (`TRANS_ID`),
UNIQUE KEY `TRANS_ID_UNIQUE` (`TRANS_ID`),
KEY `USER_ID_idx` (`USER_ID`),
CONSTRAINT `USER_ID` FOREIGN KEY (`USER_ID`) REFERENCES `Users` (`USER_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE `Users` (
`USER_ID` int(11) NOT NULL AUTO_INCREMENT,
`USER_NAME` varchar(45) NOT NULL,
`USER_DOB` datetime NOT NULL,
`OTHER_INFO` varchar(45) NOT NULL,
PRIMARY KEY (`USER_ID`),
UNIQUE KEY `USER_ID_UNIQUE` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

最佳答案

如果我理解正确,这可能对你有用

SELECT A.USER_ID AS USER_ID, A.TRANS_DATE AS TRANS_DATE, TRANS_STATUS, USER_NAME, USER_DOB
FROM
(SELECT USER_ID, MAX(TRANS_DATE) AS TRANS_DATE FROM TRANSACTION
GROUP BY USER_ID) A
INNER JOIN
(SELECT USER_ID, TRANS_DATE, TRANS_STATUS FROM TRANSACTION) B
ON A.USER_ID = B.USER_ID
AND A.TRANS_DATE=B.TRANS_DATE
INNER JOIN USERS U
ON A.USER_ID=U.USER_ID;

关于mysql - 如何在mySQL中获取与MAX(DATE)对应的FIELD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53484189/

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