mysql - 当表寄存器上的用户名更改时,只获取mysql中的最后一个用户名
问题描述
这是我tbl_register
在 MySQL 数据库上的表
+---------------------+------------------+---------------------+-----+
| sDateTime | sRegisterAccount | sNewRegisterAccount | sID |
+---------------------+------------------+---------------------+-----+
| 2019-11-27 18:52:00 | 116019 | NULL | 1 |
| 2017-08-05 14:01:00 | 030270 | 116019 | 2 |
| 2020-04-01 14:36:00 | 542116 | NULL | 3 |
| 2018-10-30 18:36:00 | 000647 | 542116 | 4 |
| 2019-03-07 14:19:00 | 115286 | NULL | 5 |
| 2020-02-17 23:16:00 | 170134 | NULL | 6 |
+---------------------+------------------+---------------------+-----+
在此表tbl_register
上还记录了该列中的任何用户名更改sNewRegisterAccount
例如
+---------------------+------------------+---------------------+-----+
| sDateTime | sRegisterAccount | sNewRegisterAccount | sID |
+---------------------+------------------+---------------------+-----+
| 2020-04-01 14:36:00 | 542116 | NULL | 3 |
| 2018-10-30 18:36:00 | 000647 | 542116 | 4 |
+---------------------+------------------+---------------------+-----+
在列sRegisterAccount
中的旧帐户值000647
在列sNewRegisterAccount
中的新帐户值542116
我只需要得到最后一个值sNewRegisterAccount
作为回报
+---------------------+------------------+---------------------+-----+
| sDateTime | sRegisterAccount | sNewRegisterAccount | sID |
+---------------------+------------------+---------------------+-----+
| 2019-11-27 18:52:00 | 116019 | NULL | 1 |
| 2020-04-01 14:36:00 | 542116 | NULL | 3 |
| 2019-03-07 14:19:00 | 115286 | NULL | 5 |
| 2020-02-17 23:16:00 | 170134 | NULL | 6 |
+---------------------+------------------+---------------------+-----+
我试过这个查询没有成功
mysql> SELECT
A.*
FROM
`tbl_register` A
INNER JOIN (
SELECT
sRegisterAccount,
MAX(sDateTime) LastDatetimeForNode
FROM
`tbl_register`
GROUP BY
sRegisterAccount
) B ON A.sRegisterAccount = B.sRegisterAccount
AND A.sDateTime = B.LastDatetimeForNode;
+---------------------+------------------+---------------------+-----+
| sDateTime | sRegisterAccount | sNewRegisterAccount | sID |
+---------------------+------------------+---------------------+-----+
| 2019-11-27 18:52:00 | 116019 | NULL | 1 |
| 2017-08-05 14:01:00 | 030270 | 116019 | 2 |
| 2020-04-01 14:36:00 | 542116 | NULL | 3 |
| 2018-10-30 18:36:00 | 000647 | 542116 | 4 |
| 2019-03-07 14:19:00 | 115286 | NULL | 5 |
| 2020-02-17 23:16:00 | 170134 | NULL | 6 |
+---------------------+------------------+---------------------+-----+
6 rows in set
我究竟做错了什么?
拜托,你能帮帮我吗?
结构表tbl_register
如下
DROP TABLE IF EXISTS `tbl_register`;
CREATE TABLE `tbl_register` (
`sDateTime` datetime DEFAULT NULL,
`sRegisterAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`sNewRegisterAccount` varchar(255) DEFAULT NULL,
`sID` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`sID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tbl_register
-- ----------------------------
INSERT INTO `tbl_register` VALUES ('2019-11-27 18:52:00', '116019', null, '1');
INSERT INTO `tbl_register` VALUES ('2017-08-05 14:01:00', '030270', '116019', '2');
INSERT INTO `tbl_register` VALUES ('2020-04-01 14:36:00', '542116', null, '3');
INSERT INTO `tbl_register` VALUES ('2018-10-30 18:36:00', '000647', '542116', '4');
INSERT INTO `tbl_register` VALUES ('2019-03-07 14:19:00', '115286', null, '5');
INSERT INTO `tbl_register` VALUES ('2020-02-17 23:16:00', '170134', null, '6');
更新
预期成绩
+---------------------+------------------+---------------------+-----+
| sDateTime | sRegisterAccount | sNewRegisterAccount | sID |
+---------------------+------------------+---------------------+-----+
| 2019-11-27 18:52:00 | 116019 | NULL | 1 |
| 2020-04-01 14:36:00 | 542116 | NULL | 3 |
| 2019-03-07 14:19:00 | 115286 | NULL | 5 |
| 2020-02-17 23:16:00 | 170134 | NULL | 6 |
+---------------------+------------------+---------------------+-----+
解决方案
推荐阅读
- c# - 使用 linq 从 Json 获取 ID 的名称
- html - MS Outlook 365 HTML 表格 VALIGN
- sublimetext3 - 如何在 Sublime Text 3 中重命名文件选项卡
- azure-stream-analytics - 将部署在 ACI 上的 ML 模型与 Azure 中的流分析结合使用
- entity-framework - 使用实体框架更新数据库时出现 ASP.NET WEB API 错误
- next.js - Next.js 在哪里添加初始调用以检索用户配置文件
- c# - 如何在 Xamarin Forms 中创建视图而不添加新页面?
- pandas - 从变量列获取 DataFrame 值
- java - 无法在 IDE 中使用 AbstractProcessor
- c# - 从 SQL Server 事务中引发异常