我有一个相当混乱的SQLite查询,我似乎无法完全理解。
我有以下四个表:
表“S”
sID (string/guid) | sNum (integer)
-----------------------------------
aaa-aaa 1
bbb-bbb 2
ccc-ccc 3
ddd-ddd 4
eee-eee 5
fff-fff 6
ggg-ggg 7
药片”
tID (string/guid) | ... other stuff
-----------------------------------
000
www
xxx
yyy
zzz
表“S2TMap”
sID | tID
-------------------
aaa-aaa 000
bbb-bbb 000
ccc-ccc xxx
ddd-ddd yyy
eee-eee www
fff-fff 000
ggg-ggg 000
表“温度”
oldID (string/guid) | newID (string/guid)
------------------------------------------
dont care fff-fff
dont care ggg-ggg
dont care zzz
如果 temp.NewID 表中不存在 sID,我需要能够获取指定“t”中存在的 MAX() sNum。
例如,给定 T '000','000' 有 S 'aaa-aaa'、'bbb-bbb'、'fff-fff' 和 'ggg-ggg' 映射到它。但是,TEMP 表中同时存在“fff-fff”和“ggg-ggg”,这意味着我只需要查看“aaa-aaa”和“bbb-bbb”。因此,该语句将返回"2"。
我该怎么做呢?
我正在考虑按照以下方式选择“临时”表中不存在的 s,但我不确定如何获得座位的最大值,并且只能根据特定的“t”来做
SELECT s.sID, s.sNum FROM s WHERE NOT EXISTS ( SELECT newID from temp where tmp.newID = s.sID)
谢谢!