2010-11-29 17 views
2

私は2つのテーブルからデータを取得するクエリを作成しようとしていますが、結果は表示されません。 SQLite3では、少なくとも1つ、たとえば、複数のテーブルをmanagedQueryに結合するにはどうすればよいですか?

sqlite> select eventthemename, eventtypename from event_type, event_theme 
    ...> where event_type.eventthemes = event_theme._id  
    ...> and event_type._id = '2'; 
Tribal | Dance 

私はコンテンツプロバイダを使用しています。誰もこれを作る方法について考えているのですか?

答えて

0

あなたの質問は本当に明確ではありません(あなたのコードの一部を含める必要があります)ので、あなたの希望通りにあなたの質問に答えないかもしれません。そこにこの機能に最適化することができ、多くの物事は、おそらくですが、それはそれを行うことができる方法を示していること

private static final String QUERY_ALL_COURSES_WITH_SEMESTER = 
"SELECT * FROM Course JOIN Semester ON semesterId = courseSemesterId"; 

public Course getCourseByCodeAndSemester(String courseCode, Semester semester) 
{ 
Course result = null; 
String whereClause = " WHERE courseCode = '" + courseCode.toUpperCase() + "'" 
    + " AND semesterId = " + semester.getInternalId(); 
Cursor cursor = db.rawQuery(QUERY_ALL_COURSES_WITH_SEMESTER + whereClause, null); 
if (cursor.moveToFirst()) 
{ 
    result = Course.createFromCursor(cursor); 
} 
cursor.close(); 
return result; 
} 

注:しかし、次のように私は1つのクエリで2つのテーブルを結合するところ私が持っている簡単な例です。

+0

は答えてくれてありがとう!私は他のやり方でやりますが、いくつかの光があるのはいつもいいです。 – dwbrito

0

私は、私は非常に高速ではない何かをして終了し、コンテンツプロバイダを使用していますが、それは作品として:

themes = managedQuery(
     EventTheme.CONTENT_URI, 
     PROJECTIONTHEMES, 
     EventTheme.EVENTTYPE + "= ?", 
     new String[] {eventType}, 
     EventTheme.DEFAULT_SORT_ORDER); 

String[] from = new String[] { 
     Event._ID, 
     Event.NAME, 
     Event.STARTDATE, 
     Event.ENDDATE, 
     PointOfInterest.POINTOFINTERESTNAME 
    }; 

int[] to = new int[] { 
     R.id.event_id, 
     R.id.name, 
     R.id.start_date, 
     R.id.end_date, 
     R.id.location_name 
    }; 

while (themes.getPosition() < themes.getCount() - 1) { 
    themes.moveToNext(); 
    eventTheme = themes.getString(themes.getColumnIndexOrThrow(EventTheme._ID));     
    events = managedQuery(
      Event.CONTENT_URI, 
      PROJECTIONEVENTS, 
      Event.EVENTTHEME + "= ?", 
      new String [] { eventTheme } , 
      Event.DEFAULT_SORT_ORDER); 
} 
関連する問題