好吧,我有源這樣如何從多個表中合併一些記錄後找出表名?
public List<SearchRecord> getResult() {
List<SearchRecord> searchResult = new ArrayList<SearchRecord>();
String query = "SELECT " + A + ", " + B+ ", " + C
+ " FROM " + TABLE_A+ " UNION ALL SELECT " + A+ ", "
+ B+ ", " + C+ " FROM " + TABLE_B + " UNION ALL SELECT " + A+ ", " + B+ ", "
+ C+ " FROM " + TABLE_C + " UNION ALL SELECT "
+ A+ ", " + B+ ", " + C+ " FROM "
+ TABLE_D;
Cursor cursor = mDatabase.rawQuery(query, null);
if (cursor != null) {
cursor.moveToFirst();
do {
SearchRecord sr = new SearchRecord();
sr.setRecordA(cursor.getString(0));
sr.setRecordB(cursor.getString(1));
sr.setRecordC(cursor.getString(2));
searchResult.add(sr);
} while (cursor.moveToNext());
return searchResult;
}
return null;
}
與此代碼我可以從誰擁有相同的列名稱的多個表中的一些記錄,並把結果保存在一個List對象。但如何找出該記錄屬於哪張表?它來自TABLE_A,TABLE_B,TABLE_C或其他
沒有辦法知道。你可以通過索引來獲取它,因爲結果的列是按照你的陳述建立的。 – darijan
作爲一個不相關的建議,我建議你看一下PreparedStatements,因爲它們會顯着清理你的代碼。 http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html – chamakits