Mysql 需要找到具有多个条件的副本,然后比较副本之间的日期
我正在将年度会员登记写入一个db表。我需要记录上次续约后不到11个月内续约的时间 我根据多个条件查找重复的行。我目前已经制定了11个月的标准,尽管速度很慢。这是我目前使用的Mysql 需要找到具有多个条件的副本,然后比较副本之间的日期,mysql,duplicates,Mysql,Duplicates,我正在将年度会员登记写入一个db表。我需要记录上次续约后不到11个月内续约的时间 我根据多个条件查找重复的行。我目前已经制定了11个月的标准,尽管速度很慢。这是我目前使用的 SELECT y_reg.* FROM y_reg WHERE (((y_reg.season) In (SELECT season FROM y_reg As Tmp GROUP BY season, Father_Last_Name, Father_First_Name HAVING Coun
SELECT y_reg.* FROM y_reg WHERE (((y_reg.season) In (SELECT season FROM y_reg As Tmp
GROUP BY season, Father_Last_Name, Father_First_Name
HAVING Count(*)>1
AND Father_Last_Name = y_reg.Father_Last_Name
AND Father_First_Name = y_reg.Father_First_Name)))
ORDER BY y_reg.season, y_reg.Father_Last_Name, y_reg.Father_First_Name
我有一个字段日期,它是我需要评估的续约日期。我想添加一些类似于和Date-Date<335的内容
335是天数,大约比一年少1个月。但我只是不断出现语法错误,因为我显然不知道自己在做什么。在MySQL中运行得很好;你需要的只是诀窍
你可以这样说
AND later.Date >= earlier.Date
AND later.Date < earlier.Date + INTERVAL 11 MONTH
最后一项是包含日期戳的月份的第一天。整个约会过程都很顺利
我认为你应该考虑一个所谓的查询来获得你的副本,除了日期结果。试试这样的
SELECT a.*
FROM y_reg a
JOIN y_reg b ON a.Father_Last_Name = b.Father_Last_Name
AND a.Father_First_Name = b.Father_First_Name
AND b.Date < a.Date - 11 MONTH
AND b.Date >= a.Date - 12 MONTH
谢谢与我原来的选择相比,新的选择是闪电般的快。它似乎返回单个记录,可能是因为a和b有相同的记录。我只需要在匹配计数大于1时显示它们。然后点最后一个,第一个。其中Count*>1组按父姓排列,父姓,但由于未正确使用group和count而出现语法错误。我到目前为止没有语法错误,请选择Previous。*从y\u reg previous加入y\u reg previous.Father\u Last\u Name=later.Father\u Last\u Name和previous.Father\u First\u Name=later.Father\u First\u Name和later.Date
SELECT a.*
FROM y_reg a
JOIN y_reg b ON a.Father_Last_Name = b.Father_Last_Name
AND a.Father_First_Name = b.Father_First_Name
AND b.Date < a.Date - 11 MONTH
AND b.Date >= a.Date - 12 MONTH