Android SQL错误代码1(靠近“0”)&引用;
我正试图用这个语句在我的Android应用程序中编写这个查询Android SQL错误代码1(靠近“0”)&引用;,android,sql,Android,Sql,我正试图用这个语句在我的Android应用程序中编写这个查询 public void syncflavorcount() { mDb.execSQL("UPDATE " +DATABASE_TABLE2+ " SET COUNT = (SELECT SUM(c)" + " FROM ("+ "SELECT COUNT(*) AS c FROM " +DATABASE_TABLE+ " WHERE " +DATABASE_TABLE2+
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)");
}
它很好,但是当它运行时,我得到了这个错误
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))
我不知道这是为什么。该语句只有两个开括号。有人能帮我查一下吗。或者帮我把这句话写出来
预期的输出应该是DATABASETABLE2的列名计数将更新为DATABASETABLE的列名flv1name的计数。。。flv3name,其中来自flv1name的条目。。。flv3name等于DATABASETABLE2的名为name的列
DATABASETABLE2
name other columns count
Apple ... 1
Berry ... 3
Cherry ... 0
... ... ...
内部查询可能需要别名 根据@Jens的评论,您在
设置计数=(
COUNT=(
结尾处缺少结束括号感谢这一错误的帮助,但现在我有了另一个更复杂的错误。感谢这一错误的帮助,但现在我有了另一个更复杂的错误。(“FROM”附近):语法错误(代码1):“有了所有的FROM,我想它是来自声明中的第一个FROM。
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) as myTable)");
}