2010-11-29 9 views
2

두 테이블의 데이터를 가져 오는 쿼리를 만들려고하지만 결과가 표시되지 않습니다. 결과가 있다는 것을 알고 있습니다. 왜냐하면 SQLite3에서는 적어도 하나를 표시하기 때문입니다.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; 
} 

참고하지만, 그것을 할 수있는 방법을 보여줍니다.

+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); 
} 
관련 문제