2010-07-01 2 views
0

У меня есть код, отображающий список элементов на основе пользовательского адаптера. Для отображения содержимого таблицы нет проблем, но когда мне нужно добавить ссылку на многие таблицы, это другое дело. Два решения возможны в моей точки зрения:Получите таблицу на лету с sqlite

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 UNION SELECT COUNT (*) FROM A.slug;

но мне не хватает точки, и если решение существует, это будет немного сложнее.

возможно обходной путь: включить счетчик в столе

Спасибо

ответ

0

Поскольку ваши имена таблиц могут быть получены только из запроса, вам необходимо использовать динамический SQL, т.е. сростить SQL запросов строка, основанная на значениях, которые вы ранее получили из базы данных. В лучшем случае это немного неуклюже. Вы можете сделать это намного проще, проектируя его по-разному, например, сохраняя все ваши данные mytable_x_x в одной таблице и используя x_x в качестве ключа, к которому вы можете присоединиться. Затем вы можете получить результат в одном запросе.

+0

Спасибо за ваш ответ, я делаю предварительный запрос сейчас, чтобы иметь пули, и он работает хорошо – Kevin

Смежные вопросы