我有一个代码,显示基于自定义适配器的项目列表。要显示表的内容没问题,但是当我需要添加对许多表的引用时,这是另一回事。在我看来,两种解决方案都是可能的:
1)查询setViewValue中的数据库(没有过多考虑这种可能性) 要么 2)找到一种将列动态关联到其他表的方法
(欢迎两者的解决方案)
我有一个主表,其中一个名为slug的列是对其他表的引用。这些其他表包含一些我想要计算的数据。
有了我的查询后,我使用SimpleCursorAdapter在android中显示一个不错的列表(例如1024(2 ref),2048(3 ref)......)。
我认为一点模式可能比我的解释更好。
Table: A
-----------------------
_id | slug | value |
-----------------------
1 | a_a | 1024 |
2 | g_z | 2048 |
-----------------------
Table: mytable_a_a
----------------
_id | value |
----------------
1 | xxx |
2 | yyy |
----------------
Table: mytable_g_z
----------------
_id | value |
----------------
1 | xxx |
2 | yyy |
3 | zzz |
----------------
The goal is to produce something like
-------------------------------
_id | slug | value | count
-------------------------------
1 | a_a | 1024 | 2
2 | g_z | 2048 | 3
...
我尝试过类似的事情:
SELECT * FROM A. 联盟 SELECT COUNT(*)FROM A.slug;
但是我忽略了这一点,如果存在解决方案,那将会有点复杂。
可能的解决方法:在表格中包含一个计数器
谢谢
答案 0 :(得分:0)
由于您的表名只能从查询中获取,因此您需要使用动态SQL,即根据您之前从数据库中获取的值连接SQL查询字符串。这有点笨拙。您可以通过不同的方式设计它,使其变得更加容易,例如将所有mytable_x_x数据存储在一个表中,并使用x_x作为可以加入的键。然后,您可以在单个查询中获得结果。