Я пытаюсь каким-то образом оптимизировать следующий 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 не очень хорошо работал в подзапросе, и обратите внимание, что более двух sql оправдано "(SELECT rowid FROM tblEvent_basic WHERE sguid = 11)" `дважды, поэтому я хотел бы попытаться разбить подзапрос на что-то вроде ниже:
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)
Как можно этого достичь? Я понятия не имею, как получить привязку parmater (результата) к следующему утверждению в sqlite.
"DELETE FROM tblEvent_group WHERE eguid in (?) #how to bind result here
Я использую sqlite3 C API напрямую.