0
我有一個類型2數據的數據庫表,我想查找自上次同步後刪除的記錄。它有date_from
和date_to
列,原始數據有一個ID列object_id
。 date_to<>null
表示它現在不存在,所以如果沒有其他記錄與object_id
和date_to=null
相同,則表示它已被刪除。查找從類型2表中刪除的記錄,有效
我相信一個天真的實施將是這樣的:
select * from data_t2 a
where a.date_to > last_sync_date and a.date_to < current_date()
and not exists (select * from data_t2 b
where b.date_to is null and b.object_id = a.object_id);
,但顯然,這將是貴得離譜。
有沒有一個明顯更有效的方法,我失蹤了?我懷疑沒有(或者說,我應該假設有相對較少的刪除記錄,並在RDBMS之外進行一些計算),但我想我會問一下以防萬一。
謝謝!
是的,我知道有可能通過加入變成一個子查詢,我是一個徹頭徹尾的癮君子。這看起來相當簡單。在date_to上添加索引聽起來完全合理,如果它在這裏有幫助。這是一個很好的起點。 – Ken