I have some troubles with a query.
I have 3 relations tables as you can see below:
private static final String DATABASE_NAME = "sop.db";
public static final String DATABASE_TABLEACOUNT = "datasop";
public static final String KEY_ROWSTUDYID = "_id";
public static final String KEY_STUDYCODE = "code_study";
public static final String KEY_STUDYDESCRIPTION = "description_study";
public static final String KEY_STUDYANALYST = "analyst_study";
private static final String DATABASE_TABLEELEMENTS = "elements";
public static final String KEY_ROWELEMENTID = "_id";
public static final String KEY_STUDYID = "idstudy";
public static final String KEY_ELEMENTCODE = "code_element";
public static final String KEY_ELEMENTNAME = "description_element";
private static final String DATABASE_TABLETIME = "times";
public static final String KEY_ROWTIME = "_id";
public static final String KEY_ELEMENTID = "idelement";
public static final String KEY_HOURDATE = "hour_date";
public static final String KEY_OBSERVEDYTIME = "observedtime";
public static final String KEY_OBSERVEDACTIVITY = "observedactivity";
private static final int DATABASE_VERSION = 1;
private final Context ourContext;
private DbHelper ourHelper;
private static SQLiteDatabase ourDatabase;
public static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(" CREATE TABLE " + DATABASE_TABLEACOUNT + " (" +
KEY_ROWSTUDYID + " INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT, " +
KEY_STUDYCODE + " TEXT NOT NULL, " +
KEY_STUDYDESCRIPTION + " TEXT NOT NULL, " +
KEY_STUDYANALYST + " TEXT NOT NULL);"
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLEELEMENTS + " (" +
KEY_ROWELEMENTID + " INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT, " +
KEY_ELEMENTCODE + " INTEGER NOT NULL, " +
KEY_ELEMENTNAME + " TEXT, " +
KEY_STUDYID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_STUDYID+") REFERENCES "+DATABASE_TABLEACOUNT+" ("+KEY_ROWSTUDYID+")); "
);
db.execSQL(" CREATE TABLE " + DATABASE_TABLETIME + " (" +
KEY_ROWTIME + " INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT, " +
KEY_HOURDATE + " INTEGER NOT NULL, " +
KEY_OBSERVEDYTIME + " TEXT NOT NULL, " +
KEY_OBSERVEDACTIVITY + " TEXT NOT NULL, " +
KEY_ELEMENTID + " TEXT NOT NULL, FOREIGN KEY ("+KEY_ELEMENTID+") REFERENCES "+DATABASE_TABLEELEMENTS+" ("+KEY_ROWELEMENTID+")); "
);
}
I want to make a query which shows:
- from TABLEELEMENT select parameter KEY_ELEMENTCODE
- from TABLETIME select parameters KEY_OBSERVEDTIME, KEY_OBSERVEDACTIVITY
- based in from TABLEELEMENT select KEY_STUDYCODE selected by the user.
I have set the links between tables through foreign keys, but I am lost about the code to get this result.
Aucun commentaire:
Enregistrer un commentaire