存在以下问题: 尝试显示表格中的与会者列表。表 A 是通过将来自 Web 源(HTML 抓取)的数据“同步”到表 A 中生成的。
表A
列:事件 ID、用户 ID、用户名
数据:
1、111,哈利
2、222、本
3、534、海伦
2、534、海伦
2、545,詹姆斯
最终结果
我正在尝试将其显示在 Activity 中,如下所示:
社交 Activity 1:出席者:Harry
社交 2:参加者:Ben、Helen、James
社交 3:出席者:Helen
最好的方法是什么?
我的初步计划:
1) 在表 A 的 eventID 上使用分组依据运行 SQL 选择 (Query1)。
2) 循环遍历步骤 1 的每个结果。
3)对于查询1的每一个result结果,选择tableA中具有当前eventID的所有行(调用查询2)
4) 循环查询第 3 步查询 2 的结果,对于每个结果,将用户名添加到字符串缓冲区。在查询 2 结果的末尾,将 eventID 与生成的 StringBuffer 一起插入到新表中:
表 B:
列:事件 ID、用户名
数据:
1、《哈利》
2、《本、海伦、詹姆斯》
3、《海伦》
然后将表 B 中的数据与 SimpleCursorAdapter 一起使用,以使用数据填充标准 ListActivity,从而生成所有事件的列表和以逗号分隔的出席者列表。然后每次重新生成表A时,清除表B中的数据,并重新填充它。
问题:
这是做到这一点的最佳方式/最新方式吗?我真的不喜欢有一个临时表来做这件事的想法。
背景:我是 Android 开发的新手,自从几年前在大学学习 Java 后才重新开始学习。我在编程方面的强项在于 HTML、PHP、MySQL。
额外信息:为表 A 收集数据的方式是抓取一个页面,其中包含特定用户的所有事件。然后,我打算以相反的方式显示它,即为每个事件显示所有参加的用户。
我将不胜感激关于如何完成此任务的一些帮助/意见。非常感谢!
最佳答案
你不能试试下面这样的东西吗?
SELECT
eventID,
userID,
GROUP_CONCAT(userName, ",") AS users
FROM table_a
GROUP BY eventID
因此您可以通过一次查询获取所有数据。
查看更多关于 GROUP_CONCAT
的信息.
关于java - 坚持使用 SQLite 和 Group By 进行 android SQL 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178145/