2015-04-13 7 views
-1

У меня есть следующий необработанный оператор SQL, но я НЕ хочу использовать sql.rawquery. Я хочу знать, как это сделать в форме заявления SQL.Query для Android.Sqlite Double Inner Join для оператора sql.query

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

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

Ваш rawQuery() вопрос здесь:

"PREF_TABLE.Pref_SavedTitle = '?'"; 

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

Таким образом, оставить только

"PREF_TABLE.Pref_SavedTitle = ?"; 
+0

Я не хочу использовать sql.rawquery ... Я полностью осознает, если я падаю на порядок «» он будет работать. Я просто бросил это в последнюю минуту. Технически это был «бла», перед которым я должен был просто оставить эту ошибку. – eqiz

+0

Почему вы не хотите использовать 'rawQuery()'? Я использую это (для запросов) в дополнение к 'execSQL();' (для команд). ** с ** связанными параметрами, как показано. –

+0

Обратитесь к: http://stackoverflow.com/questions/27771315/inner-join-3-tables Я попытался сделать это (все еще пытаюсь сделать это) с помощью rawQuery(). Несмотря на то, что это точная копия, она не работает. возвращает ALLLL мои результаты, но когда это делается в SQLFiddle или что-то, оно работает отлично. По процессу устранения все, что я могу определить, заключается в том, что rawQUERY не любит сумасшедшие заявления – eqiz

1

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

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

+0

Lol Я сказал, что хочу использовать sql.query, поэтому, конечно, я хочу его использовать? Мне нужно знать, как преобразовать вышеуказанное в SQL.QUERY – eqiz

+0

О, вы хотите, чтобы кто-то написал код для вас! Ну, я бы сказал, дайте ему шанс и задайте конкретные вопросы, когда у вас возникнут проблемы. Вы посмотрели код в учебнике? Я думаю, что это довольно похоже на вашу ситуацию. – nasch

+0

Я никого не просил написать код для меня. Я просил о помощи. Связывание страницы с разработчиком Android не помогает ответить на что-либо, особенно когда я сильно намекнул, что уже знал, как выполнять сам запрос. Если вы знаете, как это сделать, тогда вам не нужно отвечать на мой вопрос, используя мое точное утверждение. Вы можете легко выполнить запрос (tablehere, «blah», «blah» ....) и т. д. – eqiz