Android 如何获取不同表但相同列名的和
我有两个问题,但它们几乎是相关的 第一个问题: 我有4张不同的桌子,分别命名为早餐、午餐、晚餐和其他,但它们的列名相同,如脂肪、卡路里和铁。 添加它们并在文本视图中显示为每个(脂肪、卡路里和铁)的最佳方式是什么 比如说Android 如何获取不同表但相同列名的和,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我有两个问题,但它们几乎是相关的 第一个问题: 我有4张不同的桌子,分别命名为早餐、午餐、晚餐和其他,但它们的列名相同,如脂肪、卡路里和铁。 添加它们并在文本视图中显示为每个(脂肪、卡路里和铁)的最佳方式是什么 比如说 Total Fat is (111) Total Calories is (222) Total Iron is (333) 第二个问题 如果我想显示不同表的所有列的数据呢。 如何在sqlite中显示来自不同表的列fat的所有值 例如,我的sqlite数据库中有这个 break
Total Fat is (111)
Total Calories is (222)
Total Iron is (333)
第二个问题
如果我想显示不同表的所有列的数据呢。
如何在sqlite中显示来自不同表的列fat的所有值
例如,我的sqlite数据库中有这个
breakfast table lunch table dinner table others table
Fat column Fat column Fat column Fat column
1 3 6 9
2 4 7 10
3 5 8 11
我想在textview上显示类似的内容
Fats
1
2
3
4
5
6
7
8
9
10
11
我将创建一个表,并添加一个名为timeOfDay的列 在数据库帮助程序处理程序类中
public ArrayList<Integer> getFats(int timeOfDay) {
//0:breakfast
//1:lunch
//3:dinner
//4:other
ArrayList<Integer> result = new ArrayList<Integer>();
SQLiteDatabase db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
String selectQuery = "SELECT * FROM TABLE WHERE timeOfDay = " + timeOfDay;
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
result.add(cursor.getInt(cursor.getColumnIndex("fatColumn")));
while (cursor.moveToNext()) {
result.add(cursor.getInt(cursor.getColumnIndex("fatColumn")));
}
}
cursor.close();
db.close();
return result;
}
public ArrayList getFats(int timeOfDay){
//0:早餐
//1:午餐
//3:晚餐
//4:其他
ArrayList结果=新建ArrayList();
SQLiteDatabase db=SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN\u READONLY);
String selectQuery=“从timeOfDay=“+timeOfDay”所在的表中选择*;
Cursor Cursor=db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
添加(cursor.getInt(cursor.getColumnIndex(“fatColumn”));
while(cursor.moveToNext()){
添加(cursor.getInt(cursor.getColumnIndex(“fatColumn”));
}
}
cursor.close();
db.close();
返回结果;
}
在活动中,您要显示信息
ArrayList<Integer> fats = db.getFats(1);
int fatTotal = 0;
for(Integer fat : fats){
//output string for this particular fat reading
fatTotal += fat;
}
//output string of sum sort for totalFat
arraylistfats=db.getFats(1);
int-fatTotal=0;
for(整型脂肪:脂肪){
//此特定fat读取的输出字符串
脂肪总量+=脂肪;
}
//totalFat的总和排序输出字符串
我将创建一个表,并添加一个名为timeOfDay的列
在数据库帮助程序处理程序类中
public ArrayList<Integer> getFats(int timeOfDay) {
//0:breakfast
//1:lunch
//3:dinner
//4:other
ArrayList<Integer> result = new ArrayList<Integer>();
SQLiteDatabase db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
String selectQuery = "SELECT * FROM TABLE WHERE timeOfDay = " + timeOfDay;
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
result.add(cursor.getInt(cursor.getColumnIndex("fatColumn")));
while (cursor.moveToNext()) {
result.add(cursor.getInt(cursor.getColumnIndex("fatColumn")));
}
}
cursor.close();
db.close();
return result;
}
public ArrayList getFats(int timeOfDay){
//0:早餐
//1:午餐
//3:晚餐
//4:其他
ArrayList结果=新建ArrayList();
SQLiteDatabase db=SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN\u READONLY);
String selectQuery=“从timeOfDay=“+timeOfDay”所在的表中选择*;
Cursor Cursor=db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
添加(cursor.getInt(cursor.getColumnIndex(“fatColumn”));
while(cursor.moveToNext()){
添加(cursor.getInt(cursor.getColumnIndex(“fatColumn”));
}
}
cursor.close();
db.close();
返回结果;
}
在活动中,您要显示信息
ArrayList<Integer> fats = db.getFats(1);
int fatTotal = 0;
for(Integer fat : fats){
//output string for this particular fat reading
fatTotal += fat;
}
//output string of sum sort for totalFat
arraylistfats=db.getFats(1);
int-fatTotal=0;
for(整型脂肪:脂肪){
//此特定fat读取的输出字符串
脂肪总量+=脂肪;
}
//totalFat的总和排序输出字符串
我有四张不同的桌子,分别是早餐、午餐、晚餐和其他,但它们的列名相同,比如脂肪、卡路里和铁
让不同的表具有相同的列应该是您的主要问题,而不是如何组合不同的表。(因为JOIN
和跨表扫描非常昂贵)
你应该这样做
CREATE TABLE IF NOT EXISTS meals (
_id PRIMARY KEY AUTOINCREMENT,
meal_time VARCHAR(20),
fat INTEGER,
calories INTEGER,
iron INTEGER,
time_eaten DEFAULT current_timestamp
)
参考默认值-
然后,您将插入一个带有用餐时间=“晚餐”
的值,并选择其中用餐时间=“晚餐”
在这一点上,你的第二个问题是微不足道的
SELECT fat from meals ORDER BY meal_time;
如果您想要晚餐、午餐、早餐的具体选项,请添加一个WHERE
,如图所示
我有四张不同的桌子,分别是早餐、午餐、晚餐和其他,但它们的列名相同,比如脂肪、卡路里和铁
让不同的表具有相同的列应该是您的主要问题,而不是如何组合不同的表。(因为JOIN
和跨表扫描非常昂贵)
你应该这样做
CREATE TABLE IF NOT EXISTS meals (
_id PRIMARY KEY AUTOINCREMENT,
meal_time VARCHAR(20),
fat INTEGER,
calories INTEGER,
iron INTEGER,
time_eaten DEFAULT current_timestamp
)
参考默认值-
然后,您将插入一个带有用餐时间=“晚餐”
的值,并选择其中用餐时间=“晚餐”
在这一点上,你的第二个问题是微不足道的
SELECT fat from meals ORDER BY meal_time;
如果您想要晚餐、午餐、早餐的具体选项,请添加一个WHERE
,如图所示 我有两个问题-所以你应该问两个独立的问题可能我应该问不同的问题,先生,但这两个问题彼此距离不够远,因此,我认为比松可以回答其中一个问题,也可以回答另一个问题。我有两个问题-因此你应该问两个单独的问题。主席先生,我可能会问不同的问题,但这两个问题之间的距离不够远,因此我认为比松可以回答其中一个问题,也可以回答另一个问题。