java - 我如何从查询中的两个表中获取数据?

标签 java android database sqlite

我想从两个表中获取所有数据,并将其转换为 StringBuffer,但我在查询时遇到问题。我不知道该如何正确调用它。

该方法将显示用户创建的训练计划。这个计划有两种。例如,在 FBW_TABLE_SET_A_CHEST 中,用户选择了名为“挤压杠铃”的练习,而在 FBW_TABLE_SET_B_CHEST 中,用户选择了名为“挤压哑铃”的练习。

以下是表的调用方式

private static final String FBW_TABLE_NAME_SET_A = "FbwSetA";
private static final String FBW_TABLE_SET_A_CALF = "calfExerciseSetA";
private static final String FBW_TABLE_SET_A_LEGS = "legsExerciseSetA";
private static final String FBW_TABLE_SET_A_BACK = "backExerciseSetA";
private static final String FBW_TABLE_SET_A_SHOULDERS = "shouldersExerciseSetA";
private static final String FBW_TABLE_SET_A_BICEPS = "bicepsExerciseSetA";
private static final String FBW_TABLE_SET_A_TRICEPS = "tricepsExerciseSetA";
private static final String FBW_TABLE_SET_A_CHEST = "chestExerciseSetA";
private static final String FBW_TABLE_SET_A_ABS = "absExerciseSetA";
private static final String FBW_TABLE_SET_A_FOREARM = "forearmExerciseSetA";

private static final String FBW_TABLE_NAME_SET_B = "FbwSetB";
private static final String FBW_TABLE_SET_B_CALF = "calfExerciseSetB";
private static final String FBW_TABLE_SET_B_LEGS = "legsExerciseSetB";
private static final String FBW_TABLE_SET_B_BACK = "backExerciseSetB";
private static final String FBW_TABLE_SET_B_SHOULDERS = "shouldersExerciseSetB";
private static final String FBW_TABLE_SET_B_BICEPS = "bicepsExerciseSetB";
private static final String FBW_TABLE_SET_B_TRICEPS = "tricepsExerciseSetB";
private static final String FBW_TABLE_SET_B_CHEST = "chestExerciseSetB";
private static final String FBW_TABLE_SET_B_ABS = "absExerciseSetB";
private static final String FBW_TABLE_SET_B_FOREARM = "forearmExerciseSetB";

这是我如何通过 db.execSQL(..)“创建”它

db.execSQL("create table " + FBW_TABLE_NAME_SET_A + " (ID INTEGER PRIMARY KEY AUTOINCREMENT," + FBW_TABLE_SET_A_CALF + " TEXT," + FBW_TABLE_SET_A_LEGS + " TEXT," + FBW_TABLE_SET_A_BACK + " TEXT," + FBW_TABLE_SET_A_SHOULDERS + " TEXT," + FBW_TABLE_SET_A_BICEPS + " TEXT," + FBW_TABLE_SET_A_TRICEPS + " TEXT," + FBW_TABLE_SET_A_CHEST + " TEXT," + FBW_TABLE_SET_A_ABS + " TEXT," + FBW_TABLE_SET_A_FOREARM + " TEXT)");
    db.execSQL("create table " + FBW_TABLE_NAME_SET_B + " (ID INTEGER PRIMARY KEY AUTOINCREMENT," + FBW_TABLE_SET_B_CALF + " TEXT," + FBW_TABLE_SET_B_LEGS + " TEXT," + FBW_TABLE_SET_B_BACK + " TEXT," + FBW_TABLE_SET_B_SHOULDERS + " TEXT," + FBW_TABLE_SET_B_BICEPS + " TEXT," + FBW_TABLE_SET_B_TRICEPS + " TEXT," + FBW_TABLE_SET_B_CHEST + " TEXT," + FBW_TABLE_SET_B_ABS + " TEXT," + FBW_TABLE_SET_B_FOREARM + " TEXT)");

总之:该方法应该从两个表中获取所有数据,并将其转换为 StringBuffer 并显示用户创建的培训计划。

最佳答案

使用UNION复合运算符。

SQL 代码是这样的:

SELECT col1, col2 from table1 UNION SELECT col1, col2 from table2

关于java - 我如何从查询中的两个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736421/

相关文章:

java - 缓冲区下溢异常?这里?

java - 无法在 java 中为 Web 服务创建客户端

java - ViewRootImpl : ViewPostImeInputStage processPointer 0 on OnItemClick of Listview in android

ruby-on-rails - rails : sum all column elements where param1 == some value

database - 反单调性和单调性约束是什么意思?

java - 在 Kotlin 中使用 setter 实现 Java getter 接口(interface)

java - eclipse导入maven项目出错

android - 使用视频的 ID (Mediastore) 获取视频的 URI

android - 如何以编程方式在 ListBox 项中添加图像?

mysql - 如何在 Laravel 中使用索引?