SQL:查询新日期的新行

SQL:查询新日期的新行,sql,Sql,我有一张如图所示的表格--> 我需要正确的查询以仅获取数据\u id 10 查询应该是这样的:比较最新的日期行(2014-08-08)和最早的日期行(2014-08-06)。如果2014-08-08上有一行不是2014-08-06,则应返回该行 我已经尝试过使用自连接和子选择,但没有成功 谢谢你的帮助 像这样的东西怎么样: SELECT d1.* FROM Dates d1 LEFT JOIN Dates d2 ON d1.nextTableId = d2.nextTableId WHERE d

我有一张如图所示的表格-->

我需要正确的查询以仅获取数据\u id 10

查询应该是这样的:比较最新的日期行(2014-08-08)和最早的日期行(2014-08-06)。如果2014-08-08上有一行不是2014-08-06,则应返回该行

我已经尝试过使用自连接和子选择,但没有成功


谢谢你的帮助

像这样的东西怎么样:

SELECT d1.* FROM Dates d1 LEFT JOIN Dates d2 ON d1.nextTableId = d2.nextTableId WHERE d1.dataofDate = '2014-08-08' AND d2.dataofDate = '2014-08-06' AND d2.data_id IS NULL;

也许这就是你要找的

select * from Table1
where 
    data not in (
        select data from Table1 
        where dataOfDate = (select min(dataofdate) from Table1)
        )
    and dataOfDate = (select max(dataofdate) from Table1)
第一个where子句将返回行的数据字段与最旧行集合中的数据字段进行比较,第二个where子句限制最新行集合

请注意,我只是基于
数据
字段比较行,因此如果要在比较中包括
nextTableId
,可能必须更改查询

  • 选择具有最大日期的所有行
  • 在具有min date的行中没有值的

  • 编辑ops,太晚了

    您将表格发布在带有广告和弹出窗口的网站上。真烦人!似乎
    nextTableId
    在此表中必须是唯一的
    SELECT `data_id`
    FROM `my_table`
    WHERE `dataOfDate` = (SELECT MAX(`dataOfDate`) FROM `my_table`)
    AND `nextTableId` NOT IN (
        SELECT `nextTableId` FROM `my_table` WHERE `dataOfDate` = (SELECT MIN(`dataOfDate`) FROM `my_table`) 
    )