使用SQLite和Group By坚持使用android SQL设计

red*_*x05 5 java sql sqlite android

有以下问题:尝试从表中显示与会者列表.表A是通过将来自Web源(HTML抓取)的数据"同步"到表A中生成的.

表A
列:eventID,userID,userName
数据:1,111,
Harry
2,222,Ben
3,534,Helen
2,534,Helen
2,545,James

最终结果
我试图在活动中显示如下:
社交1:出席者:哈里
社交2:出席者:本,海伦,詹姆斯
社交3:出席者:海伦

最好的方法是怎样做的?

我的初步计划:
1)在表A的eventID上运行带有Group By的SQL select(Query1)
.2)循环执行步骤1中的
每个结果.3)对于Query 1的每个结果结果,选择tableA中的所有行eventID(调用查询2)
4)循环执行步骤3查询2的结果,并为每个结果将用户名添加到字符串缓冲区.在查询2结果的末尾,将eventID与生成的StringBuffer一起插入到新表中:

表B:
列:eventID,userName
数据:
1,"Harry"
2,"Ben,Helen,James"
3,"Helen "

然后使用表B中的数据和SimpleCursorAdapter,使用数据填充标准ListActivity,生成所有事件的列表,以及逗号分隔的与会者列表.然后每次重新生成表A时,清除表B中的数据,并重新填充它.

问题:
这是最好的方式/最好吗?我真的不喜欢有一个临时表来做这件事.

背景:我是Android开发人员的新手,并且自从几年前在大学工作以来刚刚再次开始使用Java.我在编程方面的优势在于HTML,PHP,MySQL.

额外信息:为表A收集数据的方式是,页面被删除,其中包含特定用户的所有事件.然后我的目标是以相反的方式显示这一点,通过显示每个事件,所有参加的用户.

我很感激有关如何实现这一目标的一些帮助/意见.非常感谢!

Ocu*_*cuS 6

难道你不能尝试下面这样的东西吗?

SELECT 
    eventID,
    userID, 
    GROUP_CONCAT(userName, ",") AS users
FROM table_a
GROUP BY eventID
Run Code Online (Sandbox Code Playgroud)

因此,您可以通过单个查询获取所有数据.

了解更多GROUP_CONCAT.