次のクエリを使用して、Android SQLite に 2 つのテーブルを作成しました。
public static final String TABLE_SEMESTER_CREATE = "CREATE TABLE "
+ SemesterTable.TABLE_NAME + " (" + SemesterTable.ID_PK
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + SemesterTable.TITLE
+ " TEXT," + SemesterTable.START_DATE + " TEXT, "
+ SemesterTable.END_DATE + " TEXT) ";
public static final String TABLE_COURSE_CREATE = "CREATE TABLE "
+ CourseTable.TABLE_NAME + " (" + CourseTable.ID_PK
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + CourseTable.COURSE_CODE
+ " TEXT, " + CourseTable.COURSE_NAME + " TEXT, "
+ CourseTable.LOCATION + " TEXT, " + CourseTable.SEMESTER_ID_FK
+ " INTEGER, " + "FOREIGN KEY (" + CourseTable.SEMESTER_ID_FK
+ ") REFERENCES " + SemesterTable.TABLE_NAME + " ("
+ SemesterTable.ID_PK + "));";
次に、親テーブルと子テーブルにデータを挿入しました。問題は、クエリを実行すると次のようになることです。
String query = "SELECT * FROM " + CourseTable.TABLE_NAME + " WHERE "
+ CourseTable.SEMESTER_ID_FK + " = 1;";
database.rawQuery(query, null);;
実行されません。このエラーを取り除くのを手伝ってもらえますか? 私も試しました。
database.query(CourseTable.TABLE_NAME, CourseTable.allColumns,
CourseTable.SEMESTER_ID_FK + " = ? ",
new String[] { String.valueOf(semesterID) }, null, null, null);
しかし、それも機能していません!