java - 如何从多个本地 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 新手,所以查询可能是错误的。
解决方案
推荐阅读
- jboss - 采用 openjdk 8 和 openj9 + visualvm + jboss eap 7.1 - cpu 使用率 100%
- haskell - Haskell中的运算符与匿名函数优先级
- python - 如何在 Python 3 中构建 Windows 工具栏应用程序?
- javascript - JavaScript:如何解释和理解带有似乎没有价值的参数的函数?
- arrays - 如果用户输入将字符串留空,则默认为先前分配的奇怪行为 [已解决]
- java - 弹出菜单显示在不正确的位置
- javascript - 如何使用 JMuxer.js 播放 Java 的 FFmpegFrameGrabber Frame
- python-3.x - 如何在 python 中使用 *args 和类继承?
- r - 如何使用 R 中的分类变量获得回归的标准化 beta
- flutter - 地理围栏不在 Flutter 中调用事件