0
有表像這樣SQLite的:刪除表中的另一個表中規定的所有記錄
mytab deltab
--------- --------
id | name id | name
1 | Ann 2 | Bob
2 | Bob 3 | Cindy
3 | Cindy
4 | Dave
我想執行的查詢其刪除MYTAB在deltab指定的所有記錄,所以只有安和戴夫將留在我的選項卡中。
雖然有MySQL multiple-table delete syntax,看起來好像SQLite delete syntax沒有這樣的東西。
我正在考慮使用select-stmt替換語法,並在DELETE查詢之後標記將被刪除的行(如將這些名稱設置爲NULL)。我想知道是否有更有效的方法?
嗯...一個子查詢,我很少使用它們,如何對他們在SQLite的速度是多少?與Lokesh的建議有什麼不同嗎? –
@JanTuroň: - 我不認爲你會面臨任何性能差異。我寧願在IN中使用EXISTS。由於'in'最適合在有靜態列表的地方通過。 EXISTS會告訴你一個查詢是否返回任何結果 –
@JanTuroň: - 同樣就速度而言,我發現EXISTS比IN快得多(當子查詢結果非常大時) –