我正在研究 Android SQLite 数据库,我的要求是从两个表中获取数据。桌子是地位和食客。
状态表:
食客表:
我的目的是当 diners 表中的 din-status_color 列值和状态表中的 color_status-id 列值相等时,从状态表中获取 color_desc 的数据。
如何在 Android SQLite 中编写查询?
首先遍历 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;
}
我不是 SQLite 专家,但我认为一个简单的 join 语句应该可以工作。这样的事情可能会让你开始。
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