Мне нужен запрос, который выбирает кучу записей, а затем с этими записями выбирает кучу строк в одну строку. Ниже приведена типичная запись, а также типичный результат.Sqlite выбрать несколько строк в одну строку
table1
id
-------
3
table2
id value table1
--------------------------
5 value1 3
6 value2 3
table3
id value table1
-------------------------
9 value3 3
10 value4 3
table4
id table1
---------------
14 3
15 3
table5
id value table4
-------------------------------
19 value5 14
20 value6 14
21 value7 15
result
result1 result2 result3 result4
------------------------------------------------------
3 value1 value3 value5, value6; value7
Необходимо использовать только первый результат из Таблицы 1 и Таблицы 2. Таблица 2 часто может быть нулевой, значение 3 должно было бы войти в result2. На данный момент я выбираю каждую запись даного, как показано ниже, который возвращает только Result1, а затем для каждой записи я делаю раздельные запросы для каждого результата
SELECT DISTINCT id FROM (
-complicated select in here
) AS temp;
А затем для каждого ID сепарабельнозначный выполнить:
SELECT value FROM table2 WHERE table1 = id LIMIT 1;
SELECT value FROM table3 WHERE table1 = id LIMIT 1;
SELECT value, table4.id FROM table4, table5 WHERE table4.id = table5.table4 AND table1 = id;
и используйте код, чтобы отформатировать его во что-то подобное таблице результатов.
Проблема заключается в том, что первый запрос выполняется только в фоновом потоке, а остальные - в потоке пользовательского интерфейса. Я хотел бы сделать все это в одном запросе, но у меня проблема с таблицей 4 в одной строке и только выбор первого результата table2 и table3.
Как вычислить результат? Почему значения 'value2' и' value4' не отображаются? –
'Таблица 2 часто может быть нулевой, значение 3 должно войти в result2'. На этом этапе вы должны спросить себя, хорош ли ваш дизайн базы данных. Здесь отсутствует простота, которая поднимает красные флаги. – Tim
Но проверьте это: IFNULL http://www.sqlite.org/lang_corefunc.html#ifnull – Tim