99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2019-02-26 閱讀量: 918
sql數(shù)據(jù)去重問題

問題描述:

如下圖所示:

根據(jù)sendid和receiveid進行數(shù)據(jù)去重,就是說其實id=22的數(shù)據(jù)和id=25的數(shù)據(jù)是一條數(shù)據(jù)。去重后取時間最新的那條數(shù)據(jù)

sql語句應該怎么寫呢?

解決方法:

CREATE TABLE `message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`sendid` int(11) NOT NULL DEFAULT '0',
`receiveid` int(11) NOT NULL DEFAULT '0',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;

INSERT INTO `message` (`id`, `sendid`, `receiveid`, `create_time`)
VALUES
(1, 321, 3, '2017-01-13 10:23:03'),
(2, 322, 4, '2017-01-13 10:23:11'),
(3, 123123, 9, '2017-01-13 10:23:25'),
(4, 0, 0, '2017-01-13 10:22:54'),
(5, 4, 321, '2017-01-13 10:22:54'),
(6, 4, 322, '2017-01-13 10:23:17'),
(7, 9, 12232, '2017-01-13 10:23:30'),
(8, 0, 0, '2017-01-13 11:29:42');
SELECT *
FROM message m3
WHERE id NOT IN (#查詢需要去重的id
select DISTINCT m1.id
FROM message AS m1
INNER JOIN message AS m2
WHERE m1.id != m2.id #過濾掉自身關聯(lián)
AND ((
m1.receiveid = m2.sendid
AND m1.sendid = m2.receiveid)
OR (
m1.sendid = m2.sendid
AND m1.receiveid = m2.receiveid ) )
AND m1.create_time < m2.create_time #
GROUP BY m1.id,
m2.id);
0.0000
3
關注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子