首页 > 解决方案 > 如何从多个本地 sql 数据库表中获取结果?

问题描述

我正在android studio中创建一个应用程序,我有一些问题存储在一个数据库中,该数据库是在用户第一次打开应用程序时创建的,我创建了另一个数据库,以便用户可以添加他的问题,我需要随机来自这 2 个数据库的问题。每个数据库都有 3 个相同的列 1.question 2.heat 3.gender 这是我已经尝试过但不起作用的内容。

    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 新手,所以查询可能是错误的。

标签: javaandroidsql

解决方案


推荐阅读