我需要一些帮助来解决这个问题。 我有一个看起来像这样的数据库:
Equipement | Card | SerialNumber | Date | other | irrelevant | columns
toto1 | aaaa | a1a1a1 | 06/06/15 | efdfd | dfdfdfdfdf | dfdfdf
toto2 | bbbb | b2b2b2 | 06/06/15 | fdgdf | yztedg erg | raergr
toto1 | aaaa | a1a1a1 | 06/07/15 | sdfsd | zrtyeggae | dfdfde
toto2 | bbbb | b2b2b2 | 06/07/15 | gaery | ghffffffff | qaeryh
toto3 | cccc | c3c3c3 | 06/07/15 | gezry | eryefefetu | lgfhg
我正在寻找的是一个在特定日期之后可以找到新值的查询。例如,我希望所有新的值都不在06/06/07的基础上。
因此,查询只返回toto3;cccc;c3c3c3;06/07/15
,因为toto1;aaaa;a1a1a1
和toto2;bbbb;b2b2b2
已经在06/06/15的基础上。
我已经用一些脚本解决了我的问题(保存了06/06/15中哈希值的所有值,然后与表的其余部分进行比较),但我几乎可以肯定有一种方法在“简单”的SQL查询中执行此操作。
如果有人能帮助我,我将不胜感激:)
谢谢!
答案 0 :(得分:2)
SerialNumber似乎是一个"主键"。我们可以使用NOT IN
子句。
SqlFiddle:Demo
SELECT *
FROM Table1
WHERE SerialNumber NOT IN (SELECT SerialNumber
FROM Table1
WHERE Date <= 'The Date requested')