我有下表:
CREATE TABLE `relations` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`relationcode` varchar(25) DEFAULT NULL,
`email_address` varchar(100) DEFAULT NULL,
`firstname` varchar(100) DEFAULT NULL,
`latname` varchar(100) DEFAULT NULL,
`last_contact_date` varchar(25) DEFAULT NULL,
PRIMARY KEY (`id`)
)
在这个表中有重复,这些是具有完全相同的关系代码和电子邮件地址的关系。他们可以在那里两次甚至十次。我需要一个查询来选择所有记录的 id,但不包括其中不止一次的那些。在这些记录中,我只想选择具有最新 last_contact_id 的记录。
我比 Mysql 更喜欢 Oracle,在 Oracle 中我可以这样做:
select * from (
select row_number () over (partition by relationcode order by to_date(last_contact_date,'dd-mm-yyyy')) rank,
id,
relationcode,
email_address ,
last_contact_date
from RELATIONS)
where rank = 1
但我不知道如何修改此查询以在 MySql 中工作。我什至不敢在 MySQl 的单个查询中做同样的事情。有任何想法吗?