android.database.sqlite.SQLiteException:语法错误

android.database.sqlite.SQLiteException:语法错误,android,sqlite,Android,Sqlite,在我的应用程序中,我需要连接两个表,我使用了以下代码: Cursor shapes_cur = sq.getWritableDatabase().rawQuery("SELECT name from shapes INNER JOIN shapes ON shape_to_drug.id_shape=shapes.id WHERE shape_to_drug.id_drug =" + drug_id + " WHERE shape_to_drug.id_hp =" + hp_id, null);

在我的应用程序中,我需要连接两个表,我使用了以下代码:

Cursor shapes_cur = sq.getWritableDatabase().rawQuery("SELECT name from shapes INNER JOIN shapes ON shape_to_drug.id_shape=shapes.id WHERE shape_to_drug.id_drug =" + drug_id + " WHERE shape_to_drug.id_hp =" + hp_id, null);
但是应用程序强制关闭,我在logcat中得到这个错误:

android.database.sqlite.SQLiteException: near "WHERE": syntax error (code 1): , while compiling: SELECT name from shapes INNER JOIN shapes ON shape_to_drug.id_shape=shapes.id WHERE shape_to_drug.id_drug =360 WHERE shape_to_drug.id_hp =5

查询中有两个WHERE子句,您应该使用和:

"SELECT s.name from shapes s INNER JOIN shapes shape_to_drug ON shape_to_drug.id_shape=s.id WHERE shape_to_drug.id_drug =" + drug_id + " AND shape_to_drug.id_hp =" + hp_id

谢谢,但是现在我得到了模棱两可的列名:name(代码1)error@Amir_P请发一个新问题。确保包含完整的错误消息和导致错误的代码行。问题是您应该向查询中添加表别名,如“从形状s1选择s1.name内部连接形状s2…”等。我已经更新了答案。谢谢,但是在使用了你的代码之后,我自己解决了另一个问题