2011-12-30 19 views
1

私は2つのテーブルを持っており、リストアクティビティを使ってリストビューに両方の部分を表示したいと思います。しかし、テーブルの1つだけが表示されています。私は外部キーを設定していますが、1つのテーブルを除いて何も表示されていません。Android - 複数のSQLiteテーブルからデータを取得するにはどうすればよいですか?

私の表Iは、情報私は情報を見る

public Cursor fetchTime() { 
    // TODO Auto-generated method stub 
    return ourdb.query(WW_TIMETABLE, new String[] {KEY_ROWIDTIME, KEY_HOUR, KEY_FOREIGN}, null, null, null, null, null); 


} 

を照会方法

db.execSQL("CREATE TABLE " + WW_TABLE + 
       " (" + KEY_ROWIDLL + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       KEY_LAT + " TEXT NOT NULL, " + 
       KEY_LON + " TEXT NOT NULL);"); 
     db.execSQL("CREATE TABLE " + WW_TIMETABLE + 
       " (" + KEY_ROWIDTIME + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       KEY_HOUR + " TEXT NOT NULL, " + 
       KEY_FOREIGN + " INTEGER," + 
       " FOREIGN KEY ("+KEY_FOREIGN+") REFERENCES "+WW_TABLE+" ("+KEY_ROWIDLL+") ON DELETE CASCADE);"); 

private void fillData() { 
    // Get all of the rows from the database and create the item list 

    mTimeNotesCursor = mDbHelper.fetchTime(); 
    startManagingCursor(mTimeNotesCursor); 
    // startManagingCursor(mNotesCursor); 

    // Create an array to specify the fields we want to display in the list (only TITLE) 
    String[] from = new String[]{WWDatabase.KEY_HOUR,WWDatabase.KEY_FOREIGN}; 

    //String[] fromTime = new String[]{WWDatabase.KEY_HOUR}; 


    // and an array of the fields we want to bind those fields to (in this case just text1) 
    int[] to = new int[]{R.id.textView2, R.id.textView3}; 

    //int[] toTime = new int[]{R.id.textView4}; 

    // Now create a simple cursor adapter and set it to display 
    SimpleCursorAdapter notes = 
     new SimpleCursorAdapter(this, R.layout.time_text_row, mTimeNotesCursor, from, to); 

    setListAdapter(notes); 
    // SimpleCursorAdapter notesTime = 

     //new SimpleCursorAdapter(this, R.layout.time_text_row, mTimeNotesCursor, fromTime, toTime); 
     //setListAdapter(notesTime); 
} 

私はこれで何の誤りもありませんが、私が言ったように、それは一つのテーブルだけを示しています。すべての助けに感謝します。

+0

支援するために、[他の質問] [1]をご覧ください。 [1]:http://stackoverflow.com/questions/8731603/error-on-selectfrom-statement-android-sqlite-database – Christian

答えて

2

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=?"; 

OR

+0

'propertyId'は何でしょうか? – Christian

+0

property_idは、あなたの要件に基づいてtable_aまたはtable_bのUnique_Idにすることができます OR property_idは、データを検索するベースの列です –

+0

私はこの権利をしているかどうかわかりません 'private final string MY_QUERY = "SELECT * from wwTable mLat INNER JOIN wwTimeTable _id ON wwTable._id = wwTimeTable.mName WHERE wwTimeTable.mForeign =? ";返すourdb.rawQuery(MY_QUERY、new String [] {String.valueOf(KEY_FOREIGN)});'何時ですか?私はここで間違っている? – Christian

関連する問題