recurring ambiguous column name _id sqlite error in android -


i have tried editing code according suggestion found on site,but nothing seems work..i still keep getting following logcat error:

03-24 11:44:27.037: e/androidruntime(1809): caused by: android.database.sqlite.sqliteexception:  ambiguous column name: _id (code 1): , while compiling:  create view customerview select _id _id,   fname, lname, customermeterid, customermeternumber,   customerplotnumber, _id customers customers   inner join meters meters on customermeterid =_id 

the class referenced above in logcat:

public class viewcustomers {  public static final string table_customer_view = "customerview";  public static final string customer_view_id = customertabledetails.key_customer_id; public static final string customer_view_firstname = customertabledetails.key_first_name; public static final string customer_view_lastname = customertabledetails.key_last_name; public static final string customer_view_meter = customertabledetails.key_meter_number; public static final string customer_view_plot = customertabledetails.key_plot_number; public static final string customer_view_key_meter_id = customertabledetails.key_meter_id;  private static final string create_customer_view = ""         + "create view " + table_customer_view          + " select "+ customertabledetails.key_customer_id+" _id,"+         " "+customertabledetails.key_first_name+","+         " "+customertabledetails.key_last_name+","+         " "+customertabledetails.key_meter_id+","+         " "+customertabledetails.key_meter_number+","+         " "+customertabledetails.key_plot_number+","+         " "+metertabledetails.meter_id+""+         " "+customertabledetails.table_customers+" customers "+" inner join "+metertabledetails.table_meters+" meters"+         " on "+customertabledetails.key_meter_id+" ="+metertabledetails.meter_id;   public static void oncreate(sqlitedatabase database) {     database.execsql(create_customer_view); }  public static void onupgrade(sqlitedatabase database, int oldversion,         int newversion) {     log.w(viewcustomers.class.getname(), "upgrading database version "             + oldversion + " " + newversion             + ", destroy old data");     database.execsql("drop view if exists " + viewcustomers.table_customer_view);     oncreate(database); } 

i've used aliases still no solution.now don't know how else solve it.

edit

after corrections:

 private static final string create_customer_view = ""         + "create view " + table_customer_view          + " select "+metertabledetails.table_meters+"."+metertabledetails.meter_id+""+" "+ metertabledetails.table_meters+"."+metertabledetails.meter_id +","+         " "+customertabledetails.key_first_name+","+         " "+customertabledetails.key_last_name+","+         " "+customertabledetails.key_meter_id+","+         " "+customertabledetails.key_meter_number+","+         " "+customertabledetails.key_plot_number+","+         " "+customertabledetails.table_customers+"."+ customertabledetails.key_customer_id+          " "+customertabledetails.table_customers+" customers "+" inner join "+metertabledetails.table_meters+" meters"+         " on "+customertabledetails.key_meter_id+" ="+metertabledetails.table_meters+"."+metertabledetails.meter_id; 

edit 2

03-24 13:58:24.687: i/create statement(3098): create view customerview select meters._id   meters._id, fname, lname, customermeterid, customermeternumber,  customerplotnumber, customers._id customers customers   inner join meters meters on customermeterid = meters._id 

use tablename._id in order refer _id in query above

change:

create view customerview select _id _id, fname, lname, customermeterid, customermeternumber,  customerplotnumber, _id customers customers   inner join meters meters on customermeterid =_id 

to

create view customerview select customers._id _id,  fname, lname, customermeterid, customermeternumber,   customerplotnumber,  _id customers customers   inner join meters meters on  customermeterid =customers._id // or meters._id -> whatever think suits 

or

create view customerview select meters._id _id,  fname, lname, customermeterid, customermeternumber,   customerplotnumber,  _id customers customers   inner join meters meters on customermeterid =meters._id 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -