簡體   English   中英

無法弄清楚為什么這個大的雙內連接不起作用,但是當拆分時它確實起作用

[英]Can't figure out why this big double inner join isn't working, but when split it does

這是我的查詢,可以很好地工作...

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

現在,當我嘗試執行“單次”操作時,它將繼續在LOCATIONS_TABLE查詢中返回位置的整個數據庫。 它並不能完全滿足我的需要。

我知道查詢有效,因為我已經在這里進行了測試: http : //sqlfiddle.com/#!6/ede97/2

現在,我知道我在sqlfiddle上的示例正在使用MS Server 2014,但我認為語法應該幾乎相同,因為它只是帶有內部聯接的標准SELECT,但我可能錯了嗎?

有人知道我在做什么錯嗎? 任何幫助是極大的贊賞

編輯-修復了SQLFIDDLE,我在示例中輸入了錯誤的語句

您是否在組合查詢中缺少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 + "'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM