Java 如何从多个本地sql数据库表中获取结果?

Java 如何从多个本地sql数据库表中获取结果?,java,android,sql,Java,Android,Sql,我正在android studio中创建一个应用程序,我有一些问题存储在一个数据库中,该数据库是在用户第一次打开应用程序时创建的,我创建了另一个数据库,用户可以添加他的问题,我需要从这两个数据库中随机抽取一个问题。每个数据库有3个相同的列1.问题2.热3.性别 这是我已经试过但不起作用的 public Cursor getQuestion(int HeatLevel, int Gender) { SQLiteDatabase db = this.getWritab

我正在android studio中创建一个应用程序,我有一些问题存储在一个数据库中,该数据库是在用户第一次打开应用程序时创建的,我创建了另一个数据库,用户可以添加他的问题,我需要从这两个数据库中随机抽取一个问题。每个数据库有3个相同的列1.问题2.热3.性别 这是我已经试过但不起作用的

    public Cursor getQuestion(int HeatLevel, int Gender) {
            SQLiteDatabase db = this.getWritableDatabase();
            String query = "SELECT question, heat, gender FROM " + TABLE_NAME +
                    " WHERE heat = " + HeatLevel + " AND  gender = " + Gender +
                    " UNION ALL" +
                    " SELECT question, heat, gender FROM " + SECOND_TABLE_NAME +
                    " WHERE heat = " + HeatLevel + " AND gender = " + Gender +
                    " ORDER BY RANDOM() LIMIT 1";
            Cursor data = db.rawQuery(query, null);
            return data;
        }
因此,应用程序会根据难度和玩家性别从数据库中选择一个问题。 上面的代码生成一个错误,表示“没有这样的表”,第二个数据库的名称好像找不到它一样

我在另一个活动中使用此

    public void getQuestion(int HeatLevel, int Gender) {
            Cursor question = QuestionDB.getQuestion(HeatLevel, Gender);
            if (question.moveToNext()) {
                QuestionTextView.setText(question.getString(0));
            }
        }

我是sql新手,所以可能查询错误。

为什么不使用Room?它很容易使用,非常有帮助。我可以使用它,但我已经在4个活动中有2个数据库用于添加、编辑和删除它们,重新启动这个部分是否值得?它真的那么容易使用吗?你真的创建了2个数据库还是指2个表?如果你创建了2个数据库,那么你就发现了问题。我想我有2个表。我的手机中的应用程序文件夹中有2个文件,表名为1和2。如果我创建了2个不同的数据库,它们不会(表)在一个单独的文件夹中?我需要在onCreate of 1类中创建这两个表吗?是的,就是这样,我刚刚更改了onCreate,以便它在1个数据库中创建表,并且我添加编辑和删除这1类中的数据。谢谢@forpas让我想对了。为什么不使用Room?它很容易使用,非常有帮助。我可以使用它,但我已经在4个活动中有2个数据库用于添加、编辑和删除它们,重新启动这个部分是否值得?它真的那么容易使用吗?你真的创建了2个数据库还是指2个表?如果你创建了2个数据库,那么你就发现了问题。我想我有2个表。我的手机中的应用程序文件夹中有2个文件,表名为1和2。如果我创建了2个不同的数据库,它们不会(表)在一个单独的文件夹中?我需要在onCreate of 1类中创建这两个表吗?是的,就是这样,我刚刚更改了onCreate,所以它在1个数据库中创建了表,并且我添加编辑和删除了1类中的数据。谢谢@forpas让我想到了正确的方法。