я это понимаю, но изучая Android столкнулся с такой проблемой, что не получается считать данные из БД, созданной в другой активити... Из урока 29 помню что можно вызвать активити через startActivityForResult. И, используя метод putExtra, передать данные в мою активити. Но нужно как-то различать какая кнопка нажата, чтобы не передавать все таблицы разомFoenix писал(а):Данный урок не относится к теме
Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLite. Метод rawQuery.
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
осмотритесь на форуме - постоянно задается этот вопрос. Вот буквально недавно был. Вчера такой.
viewtopic.php?f=34&t=3822
viewtopic.php?f=34&t=3822
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- zapekankaaa
- Сообщения: 2
- Зарегистрирован: 21 апр 2014, 02:25
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Здравствуйте!
у меня возникла проблема с запросом rawQuery - не получается написать запрос без псевдонимов.
Вот как описывается запрос в уроке:
Моя задача была написать то же самое, но без псевдонимов, сначала я попробовала это сделать так:
Результат: ошибка в логе. Я решила, что всему виной одноимённые поля в таблицах добавила 2 псевдонима для полей:
Результат: опять ошибка в логе:
Caused by: android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: select people.name as param_1, position.name as param_2, position.salary as Salary from people inner join positionon people.posid = position.id where salary > ?
Причем когда я писала запрос совсем без псевдонимов, ошибка была такой же (имею в виду вот это: near ".": syntax error), так что я уже не вполне уверена, что дело было в одноимённых полях.
Подскажите, пожалуйста, что не так с запросом?
у меня возникла проблема с запросом rawQuery - не получается написать запрос без псевдонимов.
Вот как описывается запрос в уроке:
Код: Выделить всё
String sqlQuery = "select PL.name as Name, PS.name as Position, salary as Salary "
+ "from people as PL "
+ "inner join position as PS "
+ "on PL.posid = PS.id "
+ "where salary
Код: Выделить всё
String sqlQuery = "select people.name, position.name, position.salary"
+ "from people "
+ "inner join position"
+ "on people.posid = position.id "
+ "where salary > ?";
Код: Выделить всё
String sqlQuery = "select people.name as param1, position.name as param2, position.salary as Salary "
+ "from people "
+ "inner join position"
+ "on people.posid = position.id "
+ "where salary > ?";
Caused by: android.database.sqlite.SQLiteException: near ".": syntax error (code 1): , while compiling: select people.name as param_1, position.name as param_2, position.salary as Salary from people inner join positionon people.posid = position.id where salary > ?
Причем когда я писала запрос совсем без псевдонимов, ошибка была такой же (имею в виду вот это: near ".": syntax error), так что я уже не вполне уверена, что дело было в одноимённых полях.
Подскажите, пожалуйста, что не так с запросом?
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
positionon
тут пробел поставь.
тут пробел поставь.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- zapekankaaa
- Сообщения: 2
- Зарегистрирован: 21 апр 2014, 02:25
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
спасибо!positionon
тут пробел поставь.
после этого исправления вариант с двумя псевдонимами заработал верно.
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
пожалуйста. Далеко не уходи, у нас тут женщин не хватает
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
- Сообщения: 1
- Зарегистрирован: 01 окт 2014, 18:03
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Прошу прощения, понимаю, что вопрос скорее по SQL, чем по Android, но всё же
Почему был использован inner join ? Нельзя реализовать с помощью where?
что-то типа
Почему был использован inner join ? Нельзя реализовать с помощью where?
что-то типа
Код: Выделить всё
SELECT people.name, position.name, salary FROM people, position WHERE people.posid=position.id AND salary<12000;
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Tom Vonzet писал(а):Прошу прощения, понимаю, что вопрос скорее по SQL, чем по Android, но всё же
Почему был использован inner join ? Нельзя реализовать с помощью where?
что-то типа
Код: Выделить всё
SELECT people.name, position.name, salary FROM people, position WHERE people.posid=position.id AND salary<12000;
В SQLLite не знаю, нужно посто попробовать, а вообще вопрос вкуса
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Подскажите пожалуйста, хочу в этом примере добавить кнопку для полной очистки бд,не могу понять какой код нужно прописать для нее(, и еще вопрос как сделать переменные из MainActivity видными в классе DBHelper, не применяя при этом геттеры и сеттеры.
-
- Сообщения: 8
- Зарегистрирован: 20 авг 2015, 10:17
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Здравствуйте. Уже долго не могу сделать так что бы база данных создавалась и заполнялась в одном классе, а все остальные операции с данными из базы производились в других классах. Код написал, среда разработки ошибок никаких не выдает, но БД вообще не создается видимо потому что класс в котором она она находится не выполнился. Скажите делал кто-нибудь такую задачу?
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
удали данные приложенияБатька Андройд
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Все очень доходчиво как обычно. Но есть вопрос. В предыдущем (36 уроке) в обработке клика был такой код:
Из которого видно, что если в курсоре ничего нет, то мы его и не закрываем... В 37 уроке (если например задать гигантскую зарплату в первом join запросе) мы закроем и курсор, который ничего не вернул. Причем это корректно работает и там и там. Как правильнее то? (подозреваю что как в 37 уроке)? Память в 36 уроке "не течет"? Поправить в уроках ничего часом не надо?
Код: Выделить всё
//если курсор содержит записи из выборки
if(c != null) {
//перейти на первую
if(c.moveToFirst()) {
String str;
//цикл по всем записям курсора
do {
str = "";
//Для каждой записи перебираем названия полей getColumnNames
//(аналог foreach в других языках)
for(String cn : c.getColumnNames()) {
//формируем строку вывода из таблицы
str = str.concat(cn + " = " + c.getString(c.getColumnIndex(cn)) + "; ");
}
Log.d(LOG_TAG, str);
} while (c.moveToNext());
}
//закрыть курсор и очистить ресурсы
c.close();
} else Log.d(LOG_TAG, "Cursor is null");
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Столкнулся с ошибкой. Для анализа скопировал весь код урока, но ситуация не изменилась. Ошибка такого рода:. Внимание вопрос: Что я делаю не так? и Как это исправить?!
Код: Выделить всё
Caused by: android.database.sqlite.SQLiteException: no such column: PS.name (code 1): , while compiling: select PL.name as Name, PS.name as Position, salary as Salary from people as PL inner join position as PS on PL.posid = PS.id where salary > ?
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
А где, простите, foreign key?
-
- Сообщения: 1
- Зарегистрирован: 29 окт 2017, 07:53
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
При выводе в лог выводится не вся информация, заканчивается сообщением --- Table people ---
10-29 04:38:31.693 3752-3752/? D/myLogs: --- Table position ---
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 1; name = Директор; salary = 15000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 2; name = Программер; salary = 13000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 3; name = Бухгалтер; salary = 10000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 4; name = Охранник; salary = 8000;
10-29 04:38:31.694 3752-3752/? D/myLogs: --- ---
10-29 04:38:31.694 3752-3752/? D/myLogs: --- Table people ---
И мой вручную набитый код и скопированный с сайта с уроком дает такой результат.
Что нужно сделать чтобы получить полный лог?
10-29 04:38:31.693 3752-3752/? D/myLogs: --- Table position ---
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 1; name = Директор; salary = 15000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 2; name = Программер; salary = 13000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 3; name = Бухгалтер; salary = 10000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 4; name = Охранник; salary = 8000;
10-29 04:38:31.694 3752-3752/? D/myLogs: --- ---
10-29 04:38:31.694 3752-3752/? D/myLogs: --- Table people ---
И мой вручную набитый код и скопированный с сайта с уроком дает такой результат.
Что нужно сделать чтобы получить полный лог?
-
- Сообщения: 1
- Зарегистрирован: 30 окт 2017, 17:26
Re: Урок 37. Запросы из связанных таблиц. INNER JOIN в SQLit
Абсолютно аналогичная ситуация.Konstantin1979 писал(а):При выводе в лог выводится не вся информация, заканчивается сообщением --- Table people ---
10-29 04:38:31.693 3752-3752/? D/myLogs: --- Table position ---
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 1; name = Директор; salary = 15000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 2; name = Программер; salary = 13000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 3; name = Бухгалтер; salary = 10000;
10-29 04:38:31.694 3752-3752/? D/myLogs: id = 4; name = Охранник; salary = 8000;
10-29 04:38:31.694 3752-3752/? D/myLogs: --- ---
10-29 04:38:31.694 3752-3752/? D/myLogs: --- Table people ---
И мой вручную набитый код и скопированный с сайта с уроком дает такой результат.
Что нужно сделать чтобы получить полный лог?