我对数据库完全没有用,但是目前我必须使用它。
我需要进行一个查询,将日期值与表的不同条目进行比较。我有这样的查询:
SELECT t1.serial_number, t1.fault_type, t2.fault_type
FROM shipped_products t1
JOIN shipped_products t2 ON t1.serial_number=t2.serial_number
WHERE ABS(DATEDIFF(t2.date_rcv,t1.date_rcv))<90;
但是这需要永远的时间。真的,我让它运行了18个小时,而且它从未停止过。这个查询正确吗?有没有更好,更聪明的方法来做到这一点?
非常感谢你们。
顺便说一句:我将使用python脚本自动化所有过程,因此,如果您知道在python内部执行此操作的更好方法,而不必将所有逻辑都包含在查询中,那么它也会有所帮助。
编辑:
我的问题似乎不清楚,因此我将更好地解释我需要做的事情。
我有一个问题,有时产品会送至维修中心,并以“未发现缺陷”的形式运回给客户。之后,客户再次将其运送到维修中心,因为他们提出了同样的问题。因此,我需要一个查询来统计每隔90天两次维修中心有多少产品。每个产品的Uniic ID是其序列号,这就是为什么我要搜索实际编号重复的原因。
最佳答案
由于DateDiff相同,因此小于90,因此此联接中的每个记录都将匹配自己(在t1和t2中)。请确保您不匹配同一记录。如果表中有一个ID字段,则可以执行以下操作:
SELECT t1.serial_number, t1.fault_type, t2.fault_type
FROM shipped_products t1
JOIN shipped_products t2
ON t1.serial_number=t2.serial_number
AND t1.ID <> t2.ID
WHERE ABS(DATEDIFF(t2.date_rcv,t1.date_rcv))<90;
还要确保您在serial_number上有一个密钥。
关于python - 两个条目之间相同字段的MySQL比较-查询永远,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28115526/