如何在SQLite for Android中编写查询?

时间:2012-11-14 12:53:09

标签: android sqlite

我正在研究Android SQLite数据库,我的要求是从两个表中获取数据。表格是状态和食客。

状态表:

enter image description here

食客表:

enter image description here

我的目的是当diners表中的din-status_color列值和status表中的color_status-id列值相等时,从状态表中获取color_desc的数据。

如何在Android SQLite中编写查询?

3 个答案:

答案 0 :(得分:1)

这里有一个完整的教程,它在麻烦中有所帮助,我希望也能帮到你。

Good tutorial

这个beginners

答案 1 :(得分:0)

首先遍历diners表并从“din_status_color”列获取所有值(可能全部大于0)

之后迭代状态表并将“color_status-id”与diners表中的“din_status_color”进行比较。如果匹配则返回color_desc。

这将对您有所帮助:

protected String getColorDesc(){
    String[] din_status_color = {"din-status_color"};
    String[] color_desc = {"color_desc"};

    Cursor cursor = database.query("diners", din_status_color, "din_status_color > '0'", null, null, null, null);
    cursor.moveToFirst();

    Cursor cursor2 = database.query("status", color_desc, "color_status-id = '" + cursor.getInt(0) + "'", null, null, null, null);
    cursor2.moveToFirst();

    String colorDesc = cursor2.getString(0);

    cursor2.close();
    cursor.close();

    return colorDesc;
}

答案 2 :(得分:0)

我不是SQLite专家,但我认为一个简单的连接语句应该可行。这样的事情可能会让你开始。

  Cursor c = database.rawQuery("select diners.id, status.color_desc from dinners inner join status on status.color_status_id = diners.din_status_color");

在此示例中,光标将具有晚餐ID和color_desc