当我在应用程序中显示所有存储的数据时,不同表中两个数据的ID是相同的。
在此处输入图像描述 在此处输入图像描述
public class DatabaseHelper extensions SQLiteOpenHelper {
public static final String DATABASE_NAME = "FOODs.db";
//FOODs Tables name
public static final String TABLE_FOODS = "table_Foods";
public static final String TABLE_DRINKS = "table_Drinks";
public static final String TABLE_MENU = "table_Menu";
//FOODs Table Columns name
private static final String COL_1 = "Primary ID";
private static final String COL_2 = "NAME";
private static final String COL_3 = "PRICE";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CreateTableMains = "CREATE TABLE IF NOT EXISTS " + TABLE_FOODS + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
" NAME TEXT, PRICE TEXT)";
db.execSQL(CreateTableMains);
String CreateTableDrinks = "CREATE TABLE IF NOT EXISTS " + TABLE_DRINKS + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
" NAME TEXT, PRICE TEXT)";
db.execSQL(CreateTableDrinks);
public Cursor showMenuData(){
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT *,'Food' AS type FROM " + TABLE_FOODS + " UNION SELECT *, 'Drink' AS type FROM " + TABLE_DRINKS, null);
return data;
}
创建一个表变量并使用变量 like 调用 id。
String q= "SELECT a.id, a.name, b.price FROM table_a a INNER JOIN table_b b ON
a.id=b.other_id WHERE b.property_id=?";
尝试以下查询
SELECT tf.*, td.* FROM TABLE_FOODS tf LEFT JOIN TABLE_DRINKS td ON (tf.ID = td.ID);