在android中加入表

时间:2013-04-18 06:13:42

标签: android sqlite

我的sqllite数据库中有3个表 两个是配置表,一个是存储数据的主表。 现在如何通过连接android中的2个表,如何以及在何处执行连接操作来从主表中检索数据。

任何人都可以指导我。

3 个答案:

答案 0 :(得分:9)

你可以执行一个rawQuery 例如:

db.rawQuery("SELECT a.* 
FROM table_1 a 
INNER JOIN table_2 b ON a.id=b.anyId 
INNER JOIN table_3 c ON b.id= c.anyId
WHERE c.key = ?", new String[]{"test"});

第一个参数是您要执行的查询。对于要添加到查询中的所有密钥,只需在查询中添加?即可 第二个参数是字符串数组。在这个数组中,您可以放置​​键,例如上面给出的值test

修改

也可以将rawQuery用于updateinsertdelete
例如,一个简单的更新查询:

db.rawQuery("UPDATE table_1
SET fieldA = ?,
fieldB = ?
WHERE id = ?", new String[]{"test", "test2", "1"});

答案 1 :(得分:0)

类DatabaseHelper扩展了SQLiteOpenHelper

在你的功能中写下以下代码......

    SQLiteDatabase db = this.getReadableDatabase();

    private final String MY_QUERY = "YOUR QUERY";

    db.rawQuery(MY_QUERY, new String[]{"Parameter"});
    db.close();

答案 2 :(得分:-1)

您需要rawQuery方法来解决此问题。

private final String MY_QUERY = "SELECT * FROM table_a a INNER JOIN table_b b ON a.id=b.other_id WHERE b.property_id=?";

db.rawQuery(MY_QUERY, new String[]{String.valueOf(propertyId)});

但是如果你想做一个好的实现,为每个表创建一个SQLiteHelper和DataSource,并在数据源中建立关系。