У меня есть следующий необработанный оператор SQL, но я НЕ хочу использовать sql.rawquery. Я хочу знать, как это сделать в форме оператора SQL.Query для Android.
String NewSqlstatement =
"SELECT "+
"LOCATIONS_TABLE.LocationWebsiteID, "+
"LOCATIONS_TABLE.locationCity, "+
"LOCATIONS_TABLE.locationState, "+
"LOCATIONS_TABLE.locationCountry, "+
"LOCATIONS_TABLE.locationUrl, "+
"LOCATIONS_TABLE.LocationID, "+
"PREF_TABLE.Pref_SavedTitle, "+
"WEBSITECATEGORY_TABLE.WBLinkTitle, "+
"WEBSITECATEGORY_TABLE.WBLinkURL "+
"FROM "+
"PREF_TABLE "+
"INNER JOIN "+
"LOCATIONS_TABLE "+
"ON "+
"PREF_TABLE.Pref_LocationID = LOCATIONS_TABLE.LocationID "+
"INNER JOIN "+
"WEBSITECATEGORY_TABLE "+
"ON "+
"WEBSITECATEGORY_TABLE.WBLinkWebsiteID = PREF_TABLE.Pref_WebsiteID "+
"WHERE "+
"PREF_TABLE.Pref_SavedTitle = 'blah'";
Я хочу знать, как это сделать в SQL.QUERY, а не в SQL.RAWQUERY.... Я знаю формат sql.query, и я использовал его несколько раз, я просто не знаю, как это сделать. двойное внутреннее соединение
Кроме того, как вы собираетесь минусовать кого-то за попытку узнать что-то новое?
2 ответа
i do NOT want to use an sql.rawquery
– ПОЧЕМУ?
Ваша проблема с rawQuery()
находится здесь:
"PREF_TABLE.Pref_SavedTitle = '?'";
Вы должны удалить ' из связанного параметра ?.
Поскольку Android автоматически обрабатывает связанные параметры
Итак, оставить только
"PREF_TABLE.Pref_SavedTitle = ?";
Я думаю, что вам нужен SQLiteQueryBuilder. Вот один из примеров использования внутренних соединений:
http://androidopentutorials.com/android-sqlite-join-multiple-tables-example/
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.
rawQuery()
? Я использую только это (для запросов) в дополнение кexecSQL();
(для команд). с связанными параметрами, как показано.query
, может быть сделаноrawQuery()
. И ЛУЧШЕ, так как вы можете написать полную строку оператора SQL. Я запрашиваю 6 объединенных таблиц (3 INNER JOIN и 2 LEFT JOIN) в одном запросе. И это работает отлично. Я бы не назвал объединение 3 таблицcrazy statement
.