我正在使用游标适配器从数据库中获取数据。这两个表与LEFT JOIN
连接在一起。
我想从第一个表中获取数据并在第一个listViewItem中显示它,而另一个listViewItems必须从第二个表中填充。
所有这一切都取得了成功,但我之所以成为下一个原因:
e.g。 如果两个表中的每一个都包含1行,则listView将只显示1个列表项,但不会显示2个!如果第二个表包含2行,则listView将显示2个listItems,但不会显示3个,第二个listVIewItem将是来自第二个表的第二行的信息......
我怀疑我的问题是这两个表已加入,但我不知道如何解决这个问题。 请帮忙。
EDIT1:
@Override
public void onCreate(SQLiteDatabase db) {
sDb = db;
final String SQL_CREATE_USERS_INFO_TABLE = "CREATE TABLE " + UsersInfoEntry.TABLE_NAME +
" (" + UsersInfoEntry.USER_ID + " INTEGER, " +
UsersInfoEntry.EMAIL + " TEXT, " +
UsersInfoEntry.PHONE + " TEXT, " +
UsersInfoEntry.FIRST_NAME + " TEXT, " +
UsersInfoEntry.LAST_NAME + " TEXT, " +
UsersInfoEntry.SEX + " INTEGER, " +
UsersInfoEntry.DATE_OF_BIRTH + " TEXT, " +
" FOREIGN KEY (" + UsersInfoEntry.USER_ID + ") REFERENCES " +
UsersInfoEntry.TABLE_NAME + " (" + UsersInfoEntry.USER_ID +" ), " +
" UNIQUE ( " + UsersInfoEntry.USER_ID + " ) ON CONFLICT REPLACE );";
final String SQL_CREATE_TABLE_NEWS_TAPE = "CREATE TABLE " + NewsTapeEntry.TABLE_NAME +
" (" + NewsTapeEntry.NEWS_ID + " INTEGER PRIMARY KEY, " +
NewsTapeEntry.USER_ID + " INTEGER NOT NULL, " +
NewsTapeEntry.CONTENT + " TEXT, " +
NewsTapeEntry.CREATED_AT + " TEXT, " +
" FOREIGN KEY (" + NewsTapeEntry.NEWS_ID + ") REFERENCES " +
NewsTapeEntry.TABLE_NAME + " (" + NewsTapeEntry.NEWS_ID + "), " +
" UNIQUE (" + NewsTapeEntry.NEWS_ID + ") ON CONFLICT REPLACE);";
}
static {
sProfileWithNewsBuilder = new SQLiteQueryBuilder();
sProfileWithNewsBuilder.setTables(
UsersInfoEntry.TABLE_NAME + " LEFT JOIN " +
NewsTapeEntry.TABLE_NAME + " ON " +
UsersInfoEntry.TABLE_NAME + "." + UsersInfoEntry.USER_ID + " = " +
NewsTapeEntry.TABLE_NAME + "." + NewsTapeEntry.USER_ID
}