2013-10-20 88 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