Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从SQLite(android)中的2个表检索数据_Java_Android_Sqlite - Fatal编程技术网

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

Java 从SQLite(android)中的2个表检索数据,java,android,sqlite,Java,Android,Sqlite,我正在创建一个健身应用程序,有2个sqlite数据库表(TABLE_CARDIO&TABLE_WEIGHTS),其中可以保存训练信息。我需要创建一个查询来从这两个表中获取所有数据。目前,我有一个查询,它可以工作并从表_CARDIO中获取所有数据,如下所示: public Cursor getWorkoutData() { SQLiteDatabase db = this.getWritableDatabase(); Cursor result = db.rawQuery("SEL

我正在创建一个健身应用程序,有2个sqlite数据库表(TABLE_CARDIO&TABLE_WEIGHTS),其中可以保存训练信息。我需要创建一个查询来从这两个表中获取所有数据。目前,我有一个查询,它可以工作并从表_CARDIO中获取所有数据,如下所示:

public Cursor getWorkoutData() {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor result = db.rawQuery("SELECT * from "+TABLE_CARDIO,null);
    return result;
}

但是,我需要修改这个查询,以便它也可以从表中获取数据。我知道关于从两个表中获取数据还有其他问题,但是,我不知道如何将解决方案应用到我的特定场景中。我以为在“+TABLE_CARDIO,null”之后加上“+TABLE_WEIGHTS,null”会起作用,但事实并非如此。感谢您的帮助

使用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. 

这些表的结构是什么?您想要检索什么?请具体一点。你好@Abeltensor,谢谢你的回复!我尝试了
“SELECT*FROM”+TABLE\u CARDIO+“UNION SELECT*FROM”+TABLE\u WEIGHTS
,但它抛出了错误:无法解析方法“rawQuery(java.lang.String)”,您可能必须将查询转换为字符串;例如
cursor=db.rawQuery(“SELECT*FROM”+TABLE\u CARDIO+“UNION SELECT*FROM”+TABLE\u WEIGHTS,新字符串[]{searchText.getText().toString()+“%”})