SQL:查询新日期的新行
我有一张如图所示的表格--> 我需要正确的查询以仅获取数据\u id 10 查询应该是这样的:比较最新的日期行(2014-08-08)和最早的日期行(2014-08-06)。如果2014-08-08上有一行不是2014-08-06,则应返回该行 我已经尝试过使用自连接和子选择,但没有成功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
谢谢你的帮助 像这样的东西怎么样:
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
,可能必须更改查询
编辑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`)
)