2012-12-21 3 views
2

Я создаю приложение для Android с использованием базы данных SQL с несколькими таблицами. Мне нужно выбирать строки случайным образом из некоторых или всех таблиц (их около 8).Query Несколько таблиц случайным образом с ограничением

Я пробовал следующий запрос, но он дает мне «IndexOutOfBoundsException» в Java, запрос выбирает только данные из «основной» таблицы и игнорирует таблицу «парковка». Где я ошибся? Я прочитал о функции JOIN, применим ли она здесь?

 c = myDataBase.rawQuery(
    "SELECT * FROM core, parking" + " ORDER BY RANDOM() LIMIT " + rounds, null); 

Все таблицы используют ту же самую структуру столбца, но Идентификатор столбца перекрывает для каждого из них (например, в течение 8 таблиц, есть 8 столбец «1» идентификаторы) .The идентификаторы столбцов не используется в приложении.

ответ

2

должен быть столбец, которые существуют как в таблице, т.е. ID .. затем написать как

SELECT * FROM core as c, parking as p where c.ID=p.ID " + " ORDER BY RANDOM() LIMIT 
+0

Спасибо за ответ, касаемо c.id = p.ID, что, если одна таблица имеет более строк, чем в другой таблице? – ForeverLearning

+0

no prob это будет работать, но должен быть один общий столбец b/w для их отношения, т. Е. C.id = p.id ..only –

+0

Он не работает, теперь я получаю IndexOutOfBoundsException: «Недопустимый индекс 0 , размер равен 0. " Я также пробовал код в SQLite Manager. Код работает только в столбцах, где идентификаторы (или другой равный текст) для обеих таблиц равны. – ForeverLearning

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