Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid sqlite JOIN not showing data
    primarykey
    data
    text
    <p>I'm working on an Android application with sqlite, LocationsContentProvider. I'm having some trouble with a JOIN.</p> <p>This was working fine:</p> <pre><code> // Returns all the locations from the table public Cursor getAllLocations(){ Cursor cursor; cursor = mDB.query(DATABASE_TABLE, new String[] { FIELD_ROW_ID, FIELD_LAT , FIELD_LNG, FIELD_ZOOM, FIELD_ADDRESS } , null, null, null, null, null); Log.d(TAG, "DB: query complete" + cursor ); return cursor; } </code></pre> <p>And this is not working:</p> <pre><code> // Return all locations joined with sub map name public Cursor getAllLocations(){ Cursor cursor; String query; query = "SELECT a._id, a.lat, a.lng, a.sub_map_id, a.zoom, a.address, b._id, b.sub_map FROM locations a" + " INNER JOIN sub_map_table b ON a.sub_map_id=b._id"; Log.d(TAG, "DB: query = \n" + query; Log.d(TAG, "DB: query complete" ); cursor = mDB.rawQuery(query, null); return cursor; } </code></pre> <p>Some other details on the database structure:</p> <pre><code>// Fields for locations table public static final String FIELD_ROW_ID ="_id"; public static final String FIELD_LAT = "lat"; public static final String FIELD_LNG = "lng"; public static final String FIELD_ZOOM = "zoom"; public static final String FIELD_ADDRESS ="address"; public static final String FIELD_SUB_MAP_ID = "sub_map_id"; // Fields for SUB_MAP_TABLE table public static final String FIELD_SUB_MAP_ROW_ID = "_id"; public static final String FIELD_SUB_MAP = "sub_map"; //table name, a constant private static final String DATABASE_TABLE = "locations"; private static final String SUB_MAP_TABLE = "sub_map_table"; private static final String TAG = null; //instance variable for SQLiteDatabse private SQLiteDatabase mDB; //constructor public LocationsDB(Context context) { super(context, DBNAME, null, VERSION); this.mDB = getWritableDatabase(); } /** This is a callback method, invoked when the method getReadableDatabase() / getWritableDatabase() is called * provided the database does not exists * */ @Override public void onCreate(SQLiteDatabase db) { String create_table_locations = "create table " + DATABASE_TABLE + " ( " + FIELD_ROW_ID + " integer primary key autoincrement , " + FIELD_LNG + " double , " + FIELD_LAT + " double , " + FIELD_ZOOM + " text , " + FIELD_ADDRESS + " text , " + FIELD_SUB_MAP_ID + " integer " + " ) "; String create_table_submap = "create table " + SUB_MAP_TABLE + " ( " + FIELD_SUB_MAP_ROW_ID + " integer primary key autoincrement , " + FIELD_SUB_MAP + " text " + " ) "; db.execSQL(create_table_locations); db.execSQL(create_table_submap); </code></pre> <p>Been looking at this for the entire day and I can't figure out what's wrong. Please advise me. Nothing seems to be sent through? Or if it is sent through, it isn't being captured.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload