我有一个简单的数据
'crossType' [1-8] | 'isLocal' [1-2] | 'dayCross' [int] | TIMESTAMP
我想在'isLocal' = 1
的最新插入数据之前找到'crossType' = 2
的最新插入数据,然后我的输出为'dayCross'
如
'crossType' [1-8] | 'isLocal' [1-2] | 'dayCross' [int] | TIMESTAMP
1 | 1 | 3 | xx:xx:xxxx
2 | 2 | 5 | xx:xx:xxxx
5 | 2 | 7 | xx:xx:xxxx
3 | 1 | 9 | xx:xx:xxxx
2 | 1 | 10 | xx:xx:xxxx
'crossType'= 2的最新插入数据是
2 | 2 | 5 | xx:xx:xxxx
然后'isLocal'的最新插入数据= 1
3 | 1 | 9 | xx:xx:xxxx
我的输出将是 9
此问题的查询语句是什么。
谢谢。
答案 0 :(得分:0)
试试这个:
auto_ptr
外部查询将返回最新select dayCross
from your_table
where isLocal = 1
and timestamp < ( select max(timestamp)
from your_table
where crossType = 2
)
order by timestamp desc
limit 1;
,其dayCross
位于timestamp
2的最新timestamp
之前(在子查询中找到)。
答案 1 :(得分:0)
您在此查询:
SELECT dayCross FROM testing.new_table
WHERE isLocal='1' AND `timestamp` <
(select max(`timestamp`) from testing.new_table where crossType='2')
ORDER BY `timestamp` DESC LIMIT 1;
你得到最新插入的dayCross与&#39; isLocal&#39;最新插入&#39; crossType&#39;之前的数据= 1 = 2。
以下是数据:
crossType isLocal dayCross timestamp
1 1 3 2017-02-04 00:50:00
2 2 5 2017-02-04 00:40:00
5 2 7 2017-02-04 00:30:00
3 1 9 2017-02-04 00:20:00
2 1 10 2017-02-04 00:10:00