public void syncflavorcount() {
mDb.execSQL("UPDATE " +DATABASE_TABLE2+ " SET COUNT = (SELECT SUM(c)" +
" FROM ("+
"SELECT COUNT(*) AS c FROM " +DATABASE_TABLE+ " WHERE " +DATABASE_TABLE2+ ".flv1name = " +DATABASE_TABLE2+ ".name "+
" UNION ALL "+
" SELECT COUNT(*) FROM " +DATABASE_TABLE+ " WHERE " +DATABASE_TABLE2+ ".flv2name = " +DATABASE_TABLE2+ ".name "+
" UNION ALL "+
" SELECT COUNT(*) FROM " +DATABASE_TABLE+ " WHERE " +DATABASE_TABLE2+ ".flv3name = " +DATABASE_TABLE2+ ".name)");
}
それは罰金準拠していますが、それを実行したとき、私はこのエラーを取得して、私のAndroidのアプリケーションでこのクエリを記述しようとしています
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(near ")": syntax error (code 1): , while compiling: UPDATE flavors SET COUNT = (SELECT SUM(c) FROM (SELECT COUNT(*) AS c FROM recipes WHERE flavors.flv1name = flavors.name UNION ALL SELECT COUNT(*) FROM recipes WHERE flavors.flv2name = flavors.name UNION ALL SELECT COUNT(*) FROM recipes WHERE flavors.flv3name = flavors.name))
これはなぜわかりません。ステートメントには2つの角括弧しかありません。誰かが私をチェックしてもらえますか?または、私がこの声明を働かせるよう助けてください。
期待される出力は、DATABASETABLE2の列名のカウントがDATABASETABLEの列名flv1name ... flv3nameの数で更新されることです。flv1name ... flv3nameからのエントリはDATABASETABLE2の列nameと同じです。
DATABASETABLE2
name other columns count
Apple ... 1
Berry ... 3
Cherry ... 0
... ... ...
でオープン1用
)
'の閉じ括弧が欠落していますCOUNT =( '最後には行方不明です。 – Jensこのエラーに助けてくれてありがとうございましたが、今はもっと複雑に思える別のものがあります。 –