Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Получить количество подчиненных в SQLite - Android

27.06.2014, 05:22. Просмотров 509. Ответов 4
Метки нет (Все метки)

Не нашел отдельной ветке по SQLite, поэтому решил задать сюда (это нужно для андроида)

Помогите составить запрос... уже перебрал сотни вариантов... и не могу угадать!

Есть две таблицы - одна подчинена другой.
1) t1.id, t1.name
2) t2.t1_id, не нужные сейчас поля (параметры t1)...

Надо получить нечто вроде
t1.id, t1.name, количество подчиненных к этой записи из t2 или 0 если их нет.

По идее должно было быть так:
SQL
1
SELECT t1.id, t1.name, (SELECT COUNT(*) FROM t2 WHERE (t2.t1_id = t1.id)) AS co2 FROM t1
но неработает! не знает столбец t1.id в WHERE! А так работает:
SQL
1
SELECT t1.id, t1.name, (SELECT COUNT(*) FROM t2 WHERE (t2.t1_id = 123)) AS co2 FROM t1
Перепробовал и через LEFT JOIN - тоже не понял как связать...
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.06.2014, 05:22     Получить количество подчиненных в SQLite
Посмотрите здесь:

Android SQLite запрос
Получить количество строк в TextView (ListView) Android
Android Можно-ли в SQLite получить все поля
ListView и SQLite Android
SQLite как получить номер записи из INSERT Android
Кириллица в SQLite Android
ListView ячейки, получить Id элемента из SQLite Android
Картинка в SQLite Android
ID в SQLite генерятся не с 0 а с 1; Android
CursorLoader+SQLite Android
Android Sqlite trigger
Listener SQLite Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dan41k
]:->
97 / 91 / 13
Регистрация: 12.11.2013
Сообщений: 398
27.06.2014, 10:58     Получить количество подчиненных в SQLite #2
SQL
1
SELECT t1.id, t1.name FROM t1 JOIN t2 ON t1.id = t2.t1_id
Может так, если я правильно понял
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.06.2014, 19:37  [ТС]     Получить количество подчиненных в SQLite #3
Цитата Сообщение от dan41k Посмотреть сообщение
Может так, если я правильно понял
Неа! мне нужны все поля из первой таблицы и количество подчиненных полей из таблицы №2 где t2.t1_id = t1.id
А Ваш запрос просто покажет все поля первой таблицы... И кажется даже вообще проигнорирует вторую.

Полей много (в районе 1000 пока) и перезапрашивать SELECT COUNT(*) FROM t2 WHERE (t2.t1_id = 123) перебором для каждого поля в момент вывода будет долго...

Добавлено через 8 часов 27 минут
Ну-же! Пожа-а-алуста! Думал для знатоков это простой вопрос! Хотя-бы скажите ВОЗМОЖНО ЛИ ПОДОБНОЕ?
Или прийдется все-таки перебором делать? Пока застрял и жду Вашего ответа...
NEbO
587 / 455 / 49
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
Завершенные тесты: 2
27.06.2014, 19:57     Получить количество подчиненных в SQLite #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если я правильно понял вопрос:
SQL
1
2
3
4
5
6
7
8
9
sqlite> CREATE TABLE t1(id INT, name TEXT);
sqlite> CREATE TABLE t2(t1_id INT, test_fld TEXT DEFAULT NULL);
sqlite> INSERT INTO t1 VALUES(1,"name1"),(2,"name2"),(3,"name3"),(4,"name4");
sqlite> INSERT INTO t2(t1_id) VALUES(1),(2),(1),(1),(1),(3),(2),(2);
sqlite> SELECT t1.id,t1.name,COUNT(t2.t1_id) FROM t1 LEFT JOIN t2 ON t1.id=t2.t1_id GROUP BY t2.t1_id;
4|name4|0
1|name1|4
2|name2|3
3|name3|1
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.06.2014, 21:54  [ТС]     Получить количество подчиненных в SQLite #5
Спасибо! Сильно помогли! Почти то что нужно! Но натолкнули на мысль...
Только
SQL
1
SELECT t1.id,t1.name,COUNT(t2.t1_id) FROM t1 LEFT JOIN t2 ON t1.id=t2.t1_id GROUP BY t1.id;
Yandex
Объявления
27.06.2014, 21:54     Получить количество подчиненных в SQLite
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru