从SQLite中的2个表中检索数据(android)

时间:2017-03-30 11:34:03

标签: java android sqlite

我正在创建一个健身应用程序,并有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'会有效,但事实并非如此。任何帮助表示赞赏!

1 个答案:

答案 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.