2013-10-20 82 views
-2

我正試圖消除不需要的重複查詢結果。要點在於[CUSIP]存在於所有表中,但是除[IDX_FS]之外,[4DTYR]字段存在於所有表中。SQL語法錯誤 - JOIN

我以前只通過[CUSIP]字段加入了這些表,導致查詢產生不需要的重複結果(來自包含該字段的所有表的某種[4DTYR]排列)。

然後,我做了下面的修改。但是,現在我收到JOIN語法錯誤。任何人都可以提供幫助嗎?我已經轉貼了,以防萬一這個Q有點陳舊。謝謝!

FROM 

(((IDX_FS LEFT JOIN DATA_BS 
    ON IDX_FS.CUSIP = DATA_BS.CUSIP) 

LEFT JOIN DATA_Footnotes 
    ON IDX_FS.CUSIP = DATA_Footnotes.CUSIP) 

LEFT JOIN DATA_IS 
    ON IDX_FS.CUSIP = DATA_IS.CUSIP) 

LEFT JOIN DATA_SP 
    ON IDX_FS.CUSIP = DATA_SP.CUSIP 

AND (((DATA_BS LEFT JOIN DATA_IS 
    ON DATA_BS.CUSIP = DATA_IS.CUSIP 
    AND DATA_BS.4DTYR = DATA_IS.4DTYR) 

LEFT JOIN DATA_SP 
    ON DATA_BS.CUSIP = DATA_SP.CUSIP 
    AND DATA_BS.4DTYR = DATA_SP.4DTYR) 

LEFT JOIN DATA_Footnotes.4DTYR 
    ON DATA_BS.CUSIP = DATA_Footnotes.CUSIP 
    AND DATA_BS.4DTYR = DATA_Footnotes.4DTYR 
+0

請告訴我的錯誤? – Mihai

+0

我得到「缺少操作員」語法錯誤.... – user2898577

+0

[不要轉發問題](http://meta.stackexchange.com/a/110666/213634),因爲你沒有立即得到答案。你已經問過同樣的問題(這裏是http://stackoverflow.com/q/19470044/806549)和[這裏](http://stackoverflow.com/q/19472263/806549)。 – 2013-10-20 00:39:44

回答

0

看起來像你的錯誤是在這裏

LEFT JOIN DATA_Footnotes.4DTYR -- this is not a valid table name 
    ON DATA_BS.CUSIP = DATA_Footnotes.CUSIP 
    AND DATA_BS.4DTYR = DATA_Footnotes.4DTYR 

去除.4DTYR應該改正錯誤

LEFT JOIN DATA_Footnotes 
    ON DATA_BS.CUSIP = DATA_Footnotes.CUSIP 
    AND DATA_BS.4DTYR = DATA_Footnotes.4DTYR 
+0

這是一個合法的錯誤。然而,我做了改變,我仍然得到一個缺少操作員錯誤。我應該使用UNION來連接兩條SELECT語句嗎? – user2898577