我正在尝试一些方法来优化以下 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)
怎么可能做到这一点?我不知道如何将参数(结果)绑定到 sqlite 中的以下语句。
"DELETE FROM tblEvent_group WHERE eguid in (?) #how to bind result here
我直接使用 sqlite3 C API。