私はかなり紛らわしいSQLiteクエリを持っているので、頭を完全に包み込むことができないようです。
次の4つのテーブルがあります。
表「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
テーブル「temp」
oldID (string/guid) | newID (string/guid)
------------------------------------------
dont care fff-fff
dont care ggg-ggg
dont care zzz
必要なのは、sIDがtemp.NewIDテーブルに存在しない場合に、指定された「t」に存在するMAX()sNumを取得できるようにすることです。
たとえば、T '000'が与えられた場合、'000'にはS'aaa-aaa'、'bbb-bbb'、'fff-fff'、および'ggg-ggg'がマップされます。ただし、「fff-fff」と「ggg-ggg」の両方がTEMPテーブルに存在します。つまり、「aaa-aaa」と「bbb-bbb」だけを確認する必要があります。したがって、ステートメントは「2」を返します。
どうすればこれを行うことができますか?
「temp」テーブルに存在しないsを選択するために、次のように考えていましたが、シートの最大値を取得する方法がわからず、特定の「t」に基づいてのみ実行します。
SELECT s.sID, s.sNum FROM s WHERE NOT EXISTS ( SELECT newID from temp where tmp.newID = s.sID)
ありがとう!