У меня есть следующий необработанный оператор 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, и я использовал его несколько раз, я просто не знаю, как это сделать. двойное внутреннее соединение

Кроме того, как вы собираетесь минусовать кого-то за попытку узнать что-то новое?

-1
eqiz 13 Апр 2015 в 18:36

2 ответа

i do NOT want to use an sql.rawquery – ПОЧЕМУ?

Ваша проблема с rawQuery() находится здесь:

"PREF_TABLE.Pref_SavedTitle = '?'"; 

Вы должны удалить ' из связанного параметра ?.
Поскольку Android автоматически обрабатывает связанные параметры

Итак, оставить только

"PREF_TABLE.Pref_SavedTitle = ?";
1
Phantômaxx 13 Апр 2015 в 19:02
Я не хочу использовать sql.rawquery... Я полностью осознаю, что если бы я сбросил ' ', это сработало бы. Я просто бросил это туда в последнюю минуту в любом случае. Технически это было «бла», перед которым я должен был просто уйти, это моя ошибка
 – 
eqiz
14 Апр 2015 в 20:56
Почему вы не хотите использовать rawQuery()? Я использую только это (для запросов) в дополнение к execSQL(); (для команд). с связанными параметрами, как показано.
 – 
Phantômaxx
14 Апр 2015 в 21:32
См.: stackoverflow.com/questions/27771315/inner-join-3-tables Я пытался сделать это (все еще пытаясь это сделать) с помощью rawQuery(). Несмотря на то, что это точная копия, она не работает. возвращает ВСЕ мои результаты, но когда это делается в SQLFiddle или что-то в этом роде, он работает отлично. Путем исключения все, что я могу определить, это то, что rawQUERY не любит сумасшедшие утверждения.
 – 
eqiz
14 Апр 2015 в 21:38
И вы совершенно неправы. Что может быть сделано query, может быть сделано rawQuery(). И ЛУЧШЕ, так как вы можете написать полную строку оператора SQL. Я запрашиваю 6 объединенных таблиц (3 INNER JOIN и 2 LEFT JOIN) в одном запросе. И это работает отлично. Я бы не назвал объединение 3 таблиц crazy statement.
 – 
Phantômaxx
14 Апр 2015 в 21:45
Вы регистрировали фактическую строку sql, которую генерирует ваш код, а затем запускали ее в той же базе данных?
 – 
nasch
14 Апр 2015 в 22:47

Я думаю, что вам нужен SQLiteQueryBuilder. Вот один из примеров использования внутренних соединений:

http://androidopentutorials.com/android-sqlite-join-multiple-tables-example/

1
nasch 13 Апр 2015 в 19:07
Лол, я сказал, что хочу использовать sql.query, так что, конечно, я хочу его использовать? Мне нужно знать, как преобразовать приведенное выше в SQL.QUERY
 – 
eqiz
14 Апр 2015 в 20:57
О, вы хотите, чтобы кто-то написал код для вас! Ну, я бы сказал, попробуйте и задайте конкретные вопросы, когда у вас возникнут проблемы. Вы смотрели код в учебнике? Я думаю, что это довольно похоже на вашу ситуацию.
 – 
nasch
14 Апр 2015 в 22:46
Я никогда не просил никого писать код для меня. Я просил помощи. Связывание страницы с конструктором Android не помогает ответить ни на что, особенно когда я сильно намекнул, что уже знал, как сделать сам запрос. Если вы знаете, как это сделать, то вам не нужно отвечать на мой вопрос, используя мое точное утверждение. Вы можете легко сделать запрос (tablehere, "blah", "blah"...) и т.д.
 – 
eqiz
14 Апр 2015 в 22:52
Если вы уже знаете, как построить запрос с помощью построителя запросов, то я не понимаю проблемы. Если вы этого не сделаете, возможно, ссылка на учебник может вам помочь. Я не знаю, что вы выиграете от другого примера кода, который я мог бы написать, чем тот, что в этом руководстве или, возможно, несколько других, которые вы могли бы найти. Так что я думаю, я не знаю, как вам помочь, но если вы можете уточнить, я готов попробовать.
 – 
nasch
15 Апр 2015 в 01:09