2016-09-12 2 views
0

데이터베이스에 범주, 단어 및 WordImg 3 개의 테이블이 있습니다. ListgetAllCategories를 구현하려고하는데 문제는이 작업을 수행하기 위해 세 테이블 모두에서 데이터를 검색해야한다는 것입니다. 나는 3 개의 테이블에 합류 할 것인가? 이 작업을 수행하는 방법을 잘 모르겠습니다.여러 테이블을 사용하여 데이터 가져 오기 SQLiteatabase

각 범주에는 단어의 이름과 arraylist가 포함되어 있습니다. 각 단어에는 이미지의 이름이 들어 있습니다. 테이블을 만드는 데 사용

문구 :

public void onCreate(SQLiteDatabase db) { 
    final String SQL_CREATE_CATEGORY_TABLE = "CREATE TABLE " + CATEGORIES_TABLE + " (" + 
      _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + 
      TITLE + " TEXT NOT NULL " + ");"; 
    final String SQL_CREATE_WORDS_TABLE = "CREATE TABLE " + WORDS_TABLE + " (" + 
      _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + 
      TITLE + " TEXT NOT NULL, " + 
      BELONGS_TO + " INTEGER NOT NULL, " + 
      "FOREIGN KEY (" + BELONGS_TO + ") REFERENCES " + CATEGORIES_TABLE + " (" + _ID + ")" + 
      ");"; 
    final String SQL_CREATE_WORDIMG_TABLE = "CREATE TABLE " + WORDIMGS_TABLE + " (" + _ID + " " + 
      "INTEGER PRIMARY KEY AUTOINCREMENT," + TITLE + " TEXT NOT NULL, " + 
      BELONGS_TO + " INTEGER NOT NULL, " + 
      "FOREIGN KEY (" + BELONGS_TO + ") REFERENCES " + WORDS_TABLE + " (" + _ID + ")" + 
      ");"; 



    db.execSQL(SQL_CREATE_CATEGORY_TABLE); 
    db.execSQL(SQL_CREATE_WORDS_TABLE); 
    db.execSQL(SQL_CREATE_WORDIMG_TABLE); 

} 

답변

0

는이 같은 3 개 개의 테이블을 조인 할 수 있습니다

select * 
from CATEGORIES_TABLE c 
join WORDS_TABLE w on c.ID = w.BELONGS_TO 
join WORDIMGS_TABLE wi on w.ID = wi.BELONGS_TO 
+0

테이블을 결합하는 것이 가장 좋은 방법일까요? – Edward

+0

예, 간단한 가입 유스 케이스입니다. –

0

당신이해야 정말 read up on joins 당신은 실제로 변수를 혼합하고

:-) 거기에 SQL이 있기 때문에 칼럼 이름과 그 밖의 것들을 실제로 알지는 못한다. 그러나 나는 당신에게 아이디어를 줄 수있는 신속하고 더러운 예제를 줄 것이다.

의 당신이 카테고리 "foo는"단어에 대한 모든 이미지 제목을 원하는 가정 해 봅시다 :

select wordimgs_table.title 
from categories_table 
inner join words_table on words_table.belongs_to = categories_table._id 
inner join wordimgs_table on wordimgs_table.belongs_to = categories_table._id 
where categories_table.title = 'foo' 

이 당신에게 기본적으로 정렬되지 않은 목록을 제공합니다. 절과 친구들로 나만의 순서로 추가하십시오. 그리고 분명히 실제 테이블과 컬럼 이름 등을 대체하십시오.

관련 문제