次のSQLステートメントを最適化する方法を試しています:
exe_sql "DELETE FROM tblEvent_type WHERE eguid in (SELECT rowid FROM tblEvent_basic WHERE sguid=11);";
exe_sql "DELETE FROM tblEvent_group WHERE eguid in (SELECT rowid FROM tblEvent_basic WHERE sguid=11);";
sqlite3 はサブクエリでうまく機能しなかったと言われており、上記の 2 つの sql が "(SELECT rowid FROM tblEvent_basic WHERE sguid=11)"` を 2 回実行していることに気付いたので、サブクエリを次のように分割してみます。
result = exe_sql "(SELECT rowid FROM tblEvent_basic WHERE sguid=11);";
exe_sql "DELETE FROM tblEvent_type WHERE eguid in (result)
exe_sql "DELETE FROM tblEvent_group WHERE eguid in (result)
どうすればこれを達成できますか?パラメーター (結果) を sqlite の次のステートメントにバインドする方法がわかりません。
"DELETE FROM tblEvent_group WHERE eguid in (?) #how to bind result here
sqlite3 C API を直接使用しています。