2015-04-14 3 views
1

Вот мои запросы разделить эту работу прекрасно ...не могу понять, почему это большой двойной внутреннее соединение не работает, но когда раскол это делает

String sqlstatement = "SELECT WBLinkWebsiteID, WBLinkCategoryParentID, WBLinkTitle, WBLinkURL FROM WEBSITECATEGORY_TABLE WHERE WBLinkCategoryID = ?"; 
    String[] args = { CategorySubID }; 

Часть 2

sqlstatement = "SELECT LOCATIONS_TABLE.LocationWebsiteID, " 
+ "LOCATIONS_TABLE.locationCity, " 
+ "LOCATIONS_TABLE.locationState, " 
+ "LOCATIONS_TABLE.locationCountry, LOCATIONS_TABLE.locationType, " 
+ "LOCATIONS_TABLE.locationUrl, " 
+ "PREF_TABLE.Pref_SavedTitle " 
+ "FROM PREF_TABLE INNER JOIN " 
+ "LOCATIONS_TABLE ON PREF_TABLE.Pref_LocationID = LOCATIONS_TABLE.LocationID " 
+ "WHERE " 
+ "PREF_TABLE.Pref_SavedTitle = '" + theSavedPref + "' ORDER BY LOCATIONS_TABLE.locationState, LOCATIONS_TABLE.locationCity"; 

Теперь вот моя попытка объединить два вместо того, чтобы просто имея 2 идти в ряд спиной к спине и сгореть время/ресурсы ...

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 = '" + theSavedPref + "'"; 

Теперь, когда Я пытаюсь выполнить свой «SINGLE» способ, чтобы он возвращал всю базу данных WHOLE в Locations в запросе LOCATIONS_TABLE. Это не точные, которые мне нужны.

Я знаю, что запрос работает, потому что я испытал его здесь: http://sqlfiddle.com/#!6/ede97/2

Теперь я знаю, что мой пример на sqlfiddle использует MS-сервер 2014, но я предположил, что синтаксис должен быть в значительной степени то же самое, так как его просто стандарт SELECT с внутренними соединениями, но я могу ошибаться?

Кто-нибудь знает, что я делаю неправильно? Любая помощь очень ценится

EDIT - Исправлена ​​SQLFIDDLE, я поставил соврет в примере

+0

вы должны вырезать все Java. это почти не имеет значения, поскольку у вас возникают проблемы только с самим SQL. –

+0

надеюсь, что лучше я попытался отформатировать его так, чтобы его не было так сгруппировано – eqiz

ответ

1

Вы не хватает своего фильтра на WBLinkCategoryID в комбинированном запросе. Вы не должны иметь это:

... + "INNER JOIN WEBSITECATEGORY_TABLE " + "ON WEBSITECATEGORY_TABLE.WBLinkWebsiteID = PREF_TABLE.Pref_WebsiteID " + "WHERE " + "WEBSITECATEGORY_TABLE.WBLinkCategoryID IN (<value1>,...,<valueN>) AND " + "PREF_TABLE.Pref_SavedTitle = '" + theSavedPref + "'";

+0

Вы правы, мой друг !! По-видимому, это все, что я пропал без вести. Благодаря тонну – eqiz

Смежные вопросы