我正在创建一个健身应用程序,并有2个sqlite数据库表(TABLE_CARDIO& TABLE_WEIGHTS),其中可以保存锻炼信息。我需要创建一个查询来从这两个表中获取所有数据。目前我有一个有效的查询并从TABLE_CARDIO获取所有数据,如下所示:
public Cursor getWorkoutData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor result = db.rawQuery("SELECT * from "+TABLE_CARDIO,null);
return result;
}
但是我需要修改此查询,以便它也可以从TABLE_WEIGHTS获取数据。我知道这里有关于从2个表中获取数据的其他问题,但我无法理解如何将解决方案应用于我的特定场景。我想在'+ TABLE_CARDIO,null'之后添加'+ TABLE_WEIGHTS,null'会有效,但事实并非如此。任何帮助表示赞赏!
答案 0 :(得分:0)
使用SQL,您可以将多个select语句嵌入到同一个查询中。例如,
SELECT (
SELECT *
FROM TABLE_CARDIO
),
(
SELECT *
FROM TABLE_WEIGHTS
)
)
您也可以使用联盟,
SELECT * FROM TABLE_CARDIO UNION SELECT * FROM TABLE_WEIGHTS
当然,您可以在一个return语句中获取所有数据。
所以你的java字符串应该包含参数
中的两个语句"SELECT * FROM " + TABLE_CARDIO + " UNION SELECT * FROM " + TABLE_WEIGHTS
而不是
select * from table_1, null, select * from table_2, null.